|
hasGeneratedAiReports
|
NULL
|
NULL
|
NULL
|
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20738-debug-AJ-tracking-UP) $ git status
On branch JY-20738-debug-AJ-tracking-UP
Your branch is behind 'origin/JY-20738-debug-AJ-tracking-UP' by 6 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
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/Http/Controllers/API/ActivityController.php
modified: app/Jobs/Team/SyncToIntercom.php
modified: app/Services/PlaybackService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultComm......
|
NULL
|
NULL
|
NULL
|
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20738-debug-AJ-tracking-UP) $ git status
On branch JY-20738-debug-AJ-tracking-UP
Your branch is behind 'origin/JY-20738-debug-AJ-tracking-UP' by 6 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
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/Http/Controllers/API/ActivityController.php
modified: app/Jobs/Team/SyncToIntercom.php
modified: app/Services/PlaybackService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultComm......
|
NULL
|
NULL
|
NULL
|
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20738-debug-AJ-tracking-UP) $ git status
On branch JY-20738-debug-AJ-tracking-UP
Your branch is behind 'origin/JY-20738-debug-AJ-tracking-UP' by 6 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
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/Http/Controllers/API/ActivityController.php
modified: app/Jobs/Team/SyncToIntercom.php
modified: app/Services/PlaybackService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultComm......
|
NULL
|
NULL
|
NULL
|
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20738-debug-AJ-tracking-UP) $ git status
On branch JY-20738-debug-AJ-tracking-UP
Your branch is behind 'origin/JY-20738-debug-AJ-tracking-UP' by 6 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
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/Http/Controllers/API/ActivityController.php
modified: app/Jobs/Team/SyncToIntercom.php
modified: app/Services/PlaybackService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultComm......
|
NULL
|
NULL
|
NULL
|
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20738-debug-AJ-tracking-UP) $ git status
On branch JY-20738-debug-AJ-tracking-UP
Your branch is behind 'origin/JY-20738-debug-AJ-tracking-UP' by 6 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
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/Http/Controllers/API/ActivityController.php
modified: app/Jobs/Team/SyncToIntercom.php
modified: app/Services/PlaybackService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultComm......
|
NULL
|
NULL
|
NULL
|
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20738-debug-AJ-tracking-UP) $ git pull
Your configuration specifies to merge with the ref 'refs/heads/JY-20738-debug-AJ-tracking-UP'
from the remote, but no such ref was fetched....
|
NULL
|
NULL
|
NULL
|
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20738-debug-AJ-tracking-UP) $ git pull
Your configuration specifies to merge with the ref 'refs/heads/JY-20738-debug-AJ-tracking-UP'
from the remote, but no such ref was fetched....
|
NULL
|
NULL
|
NULL
|
|
JY-20372-ai-reports-promotion-pages
|
NULL
|
NULL
|
NULL
|
|
JY-20372-ai-reports-promotion-pages
|
NULL
|
NULL
|
NULL
|
|
JY-20352-sync-opportunities-without-a-local-owner- JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null...
|
NULL
|
NULL
|
NULL
|
|
JY-20352-sync-opportunities-without-a-local-owner- JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null...
|
NULL
|
NULL
|
NULL
|
|
JY-20352-sync-opportunities-without-a-local-owner- JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null...
|
NULL
|
NULL
|
NULL
|
|
1. If an opportunity has no user_id and no owner_i 1. If an opportunity has no user_id and no owner_id (external user id), we should try to get the account user_id and if available, apply to the opportunity as well. This scenario happens because some CRMs do not require a mandatory opportunity owner id.
Update such opportunities retrospectively wherever possible. We should probably update only relatively resent opportunities (created in the last 12 months)
After point 1 is finished and updated:
CRM Filling - Do not run analyses on opportunity that has no local user_id. No point in analysing noone’s data.
Examine if there’s a problem with Sync Profiles. I.e.
Team Data Literacy Academy( Prod US TeamID: 615) has many profiles, and deals with owner_id but no user_id. It also looks like we do not have the correct scope to read users from their hubspot.
Validate sync profiles fails with more visibility in such cases, so that we can request more scopes manually.
4. Opportunities that have owner_id, but no user......
|
NULL
|
NULL
|
NULL
|
|
1. If an opportunity has no user_id and no owner_i 1. If an opportunity has no user_id and no owner_id (external user id), we should try to get the account user_id and if available, apply to the opportunity as well. This scenario happens because some CRMs do not require a mandatory opportunity owner id.
Update such opportunities retrospectively wherever possible. We should probably update only relatively resent opportunities (created in the last 12 months)
After point 1 is finished and updated:
CRM Filling - Do not run analyses on opportunity that has no local user_id. No point in analysing noone’s data.
Examine if there’s a problem with Sync Profiles. I.e.
Team Data Literacy Academy( Prod US TeamID: 615) has many profiles, and deals with owner_id but no user_id. It also looks like we do not have the correct scope to read users from their hubspot.
Validate sync profiles fails with more visibility in such cases, so that we can request more scopes manually.
4. Opportunities that have owner_id, but no user......
|
NULL
|
NULL
|
NULL
|
|
1. If an opportunity has no user_id and no owner_i 1. If an opportunity has no user_id and no owner_id (external user id), we should try to get the account user_id and if available, apply to the opportunity as well. This scenario happens because some CRMs do not require a mandatory opportunity owner id.
Update such opportunities retrospectively wherever possible. We should probably update only relatively resent opportunities (created in the last 12 months)
After point 1 is finished and updated:
CRM Filling - Do not run analyses on opportunity that has no local user_id. No point in analysing noone’s data.
Examine if there’s a problem with Sync Profiles. I.e.
Team Data Literacy Academy( Prod US TeamID: 615) has many profiles, and deals with owner_id but no user_id. It also looks like we do not have the correct scope to read users from their hubspot.
Validate sync profiles fails with more visibility in such cases, so that we can request more scopes manually.
4. Opportunities that have owner_id, but no user......
|
NULL
|
NULL
|
NULL
|
|
1. If an opportunity has no user_id and no owner_i 1. If an opportunity has no user_id and no owner_id (external user id), we should try to get the account user_id and if available, apply to the opportunity as well. This scenario happens because some CRMs do not require a mandatory opportunity owner id.
Update such opportunities retrospectively wherever possible. We should probably update only relatively resent opportunities (created in the last 12 months)
After point 1 is finished and updated:
CRM Filling - Do not run analyses on opportunity that has no local user_id. No point in analysing noone’s data.
Examine if there’s a problem with Sync Profiles. I.e.
Team Data Literacy Academy( Prod US TeamID: 615) has many profiles, and deals with owner_id but no user_id. It also looks like we do not have the correct scope to read users from their hubspot.
Validate sync profiles fails with more visibility in such cases, so that we can request more scopes manually.
4. Opportunities that have owner_id, but no user......
|
NULL
|
NULL
|
NULL
|
|
Nikolay Ivanov
4 days ago
=== OPPORTUNITIES WITHO Nikolay Ivanov
4 days ago
=== OPPORTUNITIES WITHOUT user_id ANALYSIS ===
Total opportunities without user_id: 77
Distribution by owner_id:
-------------------------
Owner 521329136 : 21 deals
Owner 969078985 : 11 deals
Owner 1479179767 : 6 deals
Owner 1525304294 : 5 deals
Owner 1733561543 : 2 deals
Owner 1841956573 : 13 deals
Owner 91775198 : 8 deals
Owner 76006278 : 8 deals
Owner 442656229 : 3 deals
Opportunities with account_id: 77
Opportunities WITHOUT account_id: 0
Checking why opportunities WITH accounts have no user_id...
-------------------------------------------------......
|
NULL
|
NULL
|
NULL
|
|
Nikolay Ivanov
4 days ago
=== OPPORTUNITIES WITHO Nikolay Ivanov
4 days ago
=== OPPORTUNITIES WITHOUT user_id ANALYSIS ===
Total opportunities without user_id: 77
Distribution by owner_id:
-------------------------
Owner 521329136 : 21 deals
Owner 969078985 : 11 deals
Owner 1479179767 : 6 deals
Owner 1525304294 : 5 deals
Owner 1733561543 : 2 deals
Owner 1841956573 : 13 deals
Owner 91775198 : 8 deals
Owner 76006278 : 8 deals
Owner 442656229 : 3 deals
Opportunities with account_id: 77
Opportunities WITHOUT account_id: 0
Checking why opportunities WITH accounts have no user_id...
-------------------------------------------------......
|
NULL
|
NULL
|
NULL
|
|
(create ticket)
|
NULL
|
NULL
|
NULL
|
|
(create ticket)
|
NULL
|
NULL
|
NULL
|
|
(create ticket)
|
NULL
|
NULL
|
NULL
|
|
isPermissionError
|
NULL
|
NULL
|
NULL
|
|
isPermissionError
|
NULL
|
NULL
|
NULL
|
|
seems redundant
|
NULL
|
NULL
|
NULL
|
|
seems redundant
|
NULL
|
NULL
|
NULL
|
|
->whereHas('account')
|
NULL
|
NULL
|
NULL
|
|
->whereHas('account')
|
NULL
|
NULL
|
NULL
|
|
->whereHas('account')
|
NULL
|
NULL
|
NULL
|
|
1. Skip-on-import also skips updates to existing o 1. Skip-on-import also skips updates to existing opportunities
In every provider, the new "no user_id → return null" guard is placed before the "does this opportunity already exist?" branch. Example in OpportunitySyncTrait.php:
OpportunitySyncTrait.php:825-845
if (($profile?->getUserId() === null) && ($accountUserId === null)) {
$this->logger->error(
'[HubSpot] Skip import, no user_id found',
[
'id' => $crmId,
]
);
return null;
}
$opportunityExists = $exists ?? (bool) $this->crmEntityRepository->findOpportunityByExternalId(
$this->config,
$crmId
);
if ($opportunityExists) {
return $this->updateOpportunity(...);
}
Consequence: an opportunity that today has user_id = 27645 (from previous sync) and whose owner later leaves the team will silently stop receiving stage/value/close-date updates. Stage moves, won amounts, etc. become stale. The same pattern exists in Salesforce/Pipedrive/Copper/Close.
The ticket says "ignore......
|
NULL
|
NULL
|
NULL
|
|
1. Skip-on-import also skips updates to existing o 1. Skip-on-import also skips updates to existing opportunities
In every provider, the new "no user_id → return null" guard is placed before the "does this opportunity already exist?" branch. Example in OpportunitySyncTrait.php:
OpportunitySyncTrait.php:825-845
if (($profile?->getUserId() === null) && ($accountUserId === null)) {
$this->logger->error(
'[HubSpot] Skip import, no user_id found',
[
'id' => $crmId,
]
);
return null;
}
$opportunityExists = $exists ?? (bool) $this->crmEntityRepository->findOpportunityByExternalId(
$this->config,
$crmId
);
if ($opportunityExists) {
return $this->updateOpportunity(...);
}
Consequence: an opportunity that today has user_id = 27645 (from previous sync) and whose owner later leaves the team will silently stop receiving stage/value/close-date updates. Stage moves, won amounts, etc. become stale. The same pattern exists in Salesforce/Pipedrive/Copper/Close.
The ticket says "ignore......
|
NULL
|
NULL
|
NULL
|
|
https://github.com/jiminny/app/pull/12007
|
NULL
|
NULL
|
NULL
|
|
https://github.com/jiminny/app/pull/12007
|
NULL
|
NULL
|
NULL
|
|
[2026-04-27 08:15:15] local.INFO: conference:monit [2026-04-27 08:15:15] local.INFO: conference:monitor:end:Jiminny\Console\Commands\Activities\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {"from":"22:05","to":"22:10"} {"correlation_id":"18d6411d-e395-4ec7-8cbe-0b090d7e0cc9","trace_id":"3fa2f445-9225-45ce-81a2-d4095786bb5c"}
...
|
NULL
|
NULL
|
NULL
|
|
SELECT * FROM automated_reports where id = 71;
SEL SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;...
|
NULL
|
NULL
|
NULL
|
|
SELECT * FROM automated_reports where id = 71;
SEL SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;...
|
NULL
|
NULL
|
NULL
|
|
automated-reports
|
NULL
|
NULL
|
NULL
|
|
automated-reports
|
NULL
|
NULL
|
NULL
|
|
automated-reports
|
NULL
|
NULL
|
NULL
|
|
php artisan
|
NULL
|
NULL
|
NULL
|
|
php artisan
|
NULL
|
NULL
|
NULL
|
|
automated-reports
|
NULL
|
NULL
|
NULL
|
|
$expiringReports
|
NULL
|
NULL
|
NULL
|
|
$expiringReports
|
NULL
|
NULL
|
NULL
|
|
$expiringReports
|
NULL
|
NULL
|
NULL
|
|
->where('expires_at', '<', n ->where('expires_at', '<', now()->toDateString())...
|
NULL
|
NULL
|
NULL
|
|
->where('expires_at', '<', n ->where('expires_at', '<', now()->toDateString())...
|
NULL
|
NULL
|
NULL
|
|
->where('expires_at', '<', n ->where('expires_at', '<', now()->toDateString())...
|
NULL
|
NULL
|
NULL
|
|
->where('expires_at', '<', n ->where('expires_at', '<', now()->toDateString())...
|
NULL
|
NULL
|
NULL
|
|
$date->toDateString()
|
NULL
|
NULL
|
NULL
|