|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Tests\Feature\Listeners\UserPilot;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Nudges\UserPilot\CreateNudgeCreatedEvent;
use Jiminny\Services\UserPilot\UserPilotClient;
use Tests\TestCase;
class CreateNudgeCreatedEventTest extends TestCase
{
public function testHandleWhenUserPilotNotConfigured(): void
{
// Mock the NudgeCreated event
$event = $this->getMockBuilder(NudgeCreated::class)
->disableOriginalConstructor()
->getMock();
// Mock the UserPilotClient
$userPilotService = $this->getMockBuilder(UserPilotClient::class)
->disableOriginalConstructor()
->getMock();
$userPilotService->expects($this->never())->method('track');
// Set up the configuration to simulate UserPilot not configured
config(['services.userpilot.token' => null]);
// Instantiate the CreateActivityLoggedEvent listener
$listener = new CreateNudgeCreatedEvent($userPilotService);
// Call the handle method
$listener->handle($event);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class
SetupLayouts.php, class
SyncAccount.php, class
SyncContact.php, class
SyncFieldMetadata.php, class
SyncHubspotActiveDeals.php, class
SyncHubspotObjects.php, class
SyncLead.php, class
SyncObjects.php, class
SyncOpportunitiesMissingFieldDataCommand.php, class
SyncOpportunity.php, class
SyncProfileMetadata.php, class
SyncTeamMetadata.php, class
UpdateOpportunitySpecifications.php, class...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEventTest.php
|
NULL
|
77005
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
declare(strict_types=1);
namespace Tests\Feature\Listeners\UserPilot;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Nudges\UserPilot\CreateNudgeCreatedEvent;
use Jiminny\Services\UserPilot\UserPilotClient;
use Tests\TestCase;
class CreateNudgeCreatedEventTest extends TestCase
{
public function testHandleWhenUserPilotNotConfigured(): void
{
// Mock the NudgeCreated event
$event = $this->getMockBuilder(NudgeCreated::class)
->disableOriginalConstructor()
->getMock();
// Mock the UserPilotClient
$userPilotService = $this->getMockBuilder(UserPilotClient::class)
->disableOriginalConstructor()
->getMock();
$userPilotService->expects($this->never())->method('track');
// Set up the configuration to simulate UserPilot not configured
config(['services.userpilot.token' => null]);
// Instantiate the CreateActivityLoggedEvent listener
$listener = new CreateNudgeCreatedEvent($userPilotService);
// Call the handle method
$listener->handle($event);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEventTest.php
|
NULL
|
77006
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEvent.php
|
NULL
|
77007
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEvent.php
|
NULL
|
77008
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEvent.php
|
NULL
|
77009
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEvent.php
|
NULL
|
77010
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Show Replace Field
Search History
->track(
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/1
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
1
1
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Listeners\AutomatedReports\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\Queue\Constants;
use Jiminny\Events\AutomatedReports\AutomatedReportGenerated;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\Contracts\UserContract;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\UserPilot\UserPilotClient;
use Illuminate\Support\Facades\Log;
class TrackAutomatedReportGeneratedEvent implements ShouldQueue
{
use InteractsWithQueue;
private const string EVENT_NAME_AUTOMATED_REPORT = 'automated-report-generated';
private const string EVENT_NAME_ASK_JIMINNY_REPORT = 'ask-jiminny-report-generated';
public string $queue = Constants::QUEUE_DELAYABLE;
public function __construct(
private readonly UserPilotClient $userPilotClient,
private readonly AutomatedReportsService $automatedReportsService,
) {
}
public function handle(AutomatedReportGenerated $event): void
{
if (config('services.userpilot.token') === null) {
return;
}
$automatedReport = $event->automatedReport;
$payload = $this->buildPayload($automatedReport);
$eventName = $this->resolveEventName($automatedReport);
$users = $this->resolveUsers($automatedReport);
if (empty($users)) {
Log::warning('[UserPilot] No recipients found for automated report', [
'report_id' => $automatedReport->getId(),
'is_ask_jiminny' => $automatedReport->isAskJiminnyReport(),
]);
return;
}
Log::info('[UserPilot] Sending automated report event', [
'report_id' => $automatedReport->getId(),
'event_name' => $eventName,
'recipient_count' => count($users),
]);
try {
foreach ($users as $user) {
$this->userPilotClient->track($user, $eventName, $payload);
}
} catch (GuzzleException $e) {
Log::error('[UserPilot] Failed to send automated report event', [
'report_id' => $automatedReport->getId(),
'error' => $e->getMessage(),
]);
$this->release(3600);
}
}
/**
* @return array<UserContract>
*/
private function resolveUsers(AutomatedReport $automatedReport): array
{
if ($automatedReport->isAskJiminnyReport()) {
$creator = $automatedReport->getCreator();
return $creator !== null ? [$creator] : [];
}
return $this->automatedReportsService->getRecipientUserObjects($automatedReport);
}
private function buildPayload(AutomatedReport $automatedReport): array
{
return [
'report_type' => $automatedReport->getType(),
'frequency' => $automatedReport->getFrequency(),
];
}
private function resolveEventName(AutomatedReport $automatedReport): string
{
if ($automatedReport->isAskJiminnyReport()) {
return self::EVENT_NAME_ASK_JIMINNY_REPORT;
}
return self::EVENT_NAME_AUTOMATED_REPORT;
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder...
|
PhpStorm
|
faVsco.js – TrackAutomatedReportGeneratedEvent.php
|
NULL
|
77011
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Show Replace Field
Search History
->track(
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/1
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
1
1
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Listeners\AutomatedReports\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\Queue\Constants;
use Jiminny\Events\AutomatedReports\AutomatedReportGenerated;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\Contracts\UserContract;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\UserPilot\UserPilotClient;
use Illuminate\Support\Facades\Log;
class TrackAutomatedReportGeneratedEvent implements ShouldQueue
{
use InteractsWithQueue;
private const string EVENT_NAME_AUTOMATED_REPORT = 'automated-report-generated';
private const string EVENT_NAME_ASK_JIMINNY_REPORT = 'ask-jiminny-report-generated';
public string $queue = Constants::QUEUE_DELAYABLE;
public function __construct(
private readonly UserPilotClient $userPilotClient,
private readonly AutomatedReportsService $automatedReportsService,
) {
}
public function handle(AutomatedReportGenerated $event): void
{
if (config('services.userpilot.token') === null) {
return;
}
$automatedReport = $event->automatedReport;
$payload = $this->buildPayload($automatedReport);
$eventName = $this->resolveEventName($automatedReport);
$users = $this->resolveUsers($automatedReport);
if (empty($users)) {
Log::warning('[UserPilot] No recipients found for automated report', [
'report_id' => $automatedReport->getId(),
'is_ask_jiminny' => $automatedReport->isAskJiminnyReport(),
]);
return;
}
Log::info('[UserPilot] Sending automated report event', [
'report_id' => $automatedReport->getId(),
'event_name' => $eventName,
'recipient_count' => count($users),
]);
try {
foreach ($users as $user) {
$this->userPilotClient->track($user, $eventName, $payload);
}
} catch (GuzzleException $e) {
Log::error('[UserPilot] Failed to send automated report event', [
'report_id' => $automatedReport->getId(),
'error' => $e->getMessage(),
]);
$this->release(3600);
}
}
/**
* @return array<UserContract>
*/
private function resolveUsers(AutomatedReport $automatedReport): array
{
if ($automatedReport->isAskJiminnyReport()) {
$creator = $automatedReport->getCreator();
return $creator !== null ? [$creator] : [];
}
return $this->automatedReportsService->getRecipientUserObjects($automatedReport);
}
private function buildPayload(AutomatedReport $automatedReport): array
{
return [
'report_type' => $automatedReport->getType(),
'frequency' => $automatedReport->getFrequency(),
];
}
private function resolveEventName(AutomatedReport $automatedReport): string
{
if ($automatedReport->isAskJiminnyReport()) {
return self::EVENT_NAME_ASK_JIMINNY_REPORT;
}
return self::EVENT_NAME_AUTOMATED_REPORT;
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder...
|
PhpStorm
|
faVsco.js – TrackAutomatedReportGeneratedEvent.php
|
NULL
|
77012
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEvent.php
|
NULL
|
77013
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEvent.php
|
NULL
|
77014
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Show Replace Field
Search History
->track(
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/1
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
1
1
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Listeners\AutomatedReports\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\Queue\Constants;
use Jiminny\Events\AutomatedReports\AutomatedReportGenerated;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\Contracts\UserContract;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\UserPilot\UserPilotClient;
use Illuminate\Support\Facades\Log;
class TrackAutomatedReportGeneratedEvent implements ShouldQueue
{
use InteractsWithQueue;
private const string EVENT_NAME_AUTOMATED_REPORT = 'automated-report-generated';
private const string EVENT_NAME_ASK_JIMINNY_REPORT = 'ask-jiminny-report-generated';
public string $queue = Constants::QUEUE_DELAYABLE;
public function __construct(
private readonly UserPilotClient $userPilotClient,
private readonly AutomatedReportsService $automatedReportsService,
) {
}
public function handle(AutomatedReportGenerated $event): void
{
if (config('services.userpilot.token') === null) {
return;
}
$automatedReport = $event->automatedReport;
$payload = $this->buildPayload($automatedReport);
$eventName = $this->resolveEventName($automatedReport);
$users = $this->resolveUsers($automatedReport);
if (empty($users)) {
Log::warning('[UserPilot] No recipients found for automated report', [
'report_id' => $automatedReport->getId(),
'is_ask_jiminny' => $automatedReport->isAskJiminnyReport(),
]);
return;
}
Log::info('[UserPilot] Sending automated report event', [
'report_id' => $automatedReport->getId(),
'event_name' => $eventName,
'recipient_count' => count($users),
]);
try {
foreach ($users as $user) {
$this->userPilotClient->track($user, $eventName, $payload);
}
} catch (GuzzleException $e) {
Log::error('[UserPilot] Failed to send automated report event', [
'report_id' => $automatedReport->getId(),
'error' => $e->getMessage(),
]);
$this->release(3600);
}
}
/**
* @return array<UserContract>
*/
private function resolveUsers(AutomatedReport $automatedReport): array
{
if ($automatedReport->isAskJiminnyReport()) {
$creator = $automatedReport->getCreator();
return $creator !== null ? [$creator] : [];
}
return $this->automatedReportsService->getRecipientUserObjects($automatedReport);
}
private function buildPayload(AutomatedReport $automatedReport): array
{
return [
'report_type' => $automatedReport->getType(),
'frequency' => $automatedReport->getFrequency(),
];
}
private function resolveEventName(AutomatedReport $automatedReport): string
{
if ($automatedReport->isAskJiminnyReport()) {
return self::EVENT_NAME_ASK_JIMINNY_REPORT;
}
return self::EVENT_NAME_AUTOMATED_REPORT;
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder...
|
PhpStorm
|
faVsco.js – TrackAutomatedReportGeneratedEvent.php
|
NULL
|
77015
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Show Replace Field
Search History
->track(
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/1
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
1
1
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Listeners\AutomatedReports\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\Queue\Constants;
use Jiminny\Events\AutomatedReports\AutomatedReportGenerated;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\Contracts\UserContract;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Jiminny\Services\UserPilot\UserPilotClient;
use Illuminate\Support\Facades\Log;
class TrackAutomatedReportGeneratedEvent implements ShouldQueue
{
use InteractsWithQueue;
private const string EVENT_NAME_AUTOMATED_REPORT = 'automated-report-generated';
private const string EVENT_NAME_ASK_JIMINNY_REPORT = 'ask-jiminny-report-generated';
public string $queue = Constants::QUEUE_DELAYABLE;
public function __construct(
private readonly UserPilotClient $userPilotClient,
private readonly AutomatedReportsService $automatedReportsService,
) {
}
public function handle(AutomatedReportGenerated $event): void
{
if (config('services.userpilot.token') === null) {
return;
}
$automatedReport = $event->automatedReport;
$payload = $this->buildPayload($automatedReport);
$eventName = $this->resolveEventName($automatedReport);
$users = $this->resolveUsers($automatedReport);
if (empty($users)) {
Log::warning('[UserPilot] No recipients found for automated report', [
'report_id' => $automatedReport->getId(),
'is_ask_jiminny' => $automatedReport->isAskJiminnyReport(),
]);
return;
}
Log::info('[UserPilot] Sending automated report event', [
'report_id' => $automatedReport->getId(),
'event_name' => $eventName,
'recipient_count' => count($users),
]);
try {
foreach ($users as $user) {
$this->userPilotClient->track($user, $eventName, $payload);
}
} catch (GuzzleException $e) {
Log::error('[UserPilot] Failed to send automated report event', [
'report_id' => $automatedReport->getId(),
'error' => $e->getMessage(),
]);
$this->release(3600);
}
}
/**
* @return array<UserContract>
*/
private function resolveUsers(AutomatedReport $automatedReport): array
{
if ($automatedReport->isAskJiminnyReport()) {
$creator = $automatedReport->getCreator();
return $creator !== null ? [$creator] : [];
}
return $this->automatedReportsService->getRecipientUserObjects($automatedReport);
}
private function buildPayload(AutomatedReport $automatedReport): array
{
return [
'report_type' => $automatedReport->getType(),
'frequency' => $automatedReport->getFrequency(),
];
}
private function resolveEventName(AutomatedReport $automatedReport): string
{
if ($automatedReport->isAskJiminnyReport()) {
return self::EVENT_NAME_ASK_JIMINNY_REPORT;
}
return self::EVENT_NAME_AUTOMATED_REPORT;
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder...
|
PhpStorm
|
faVsco.js – TrackAutomatedReportGeneratedEvent.php
|
NULL
|
77016
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEvent.php
|
NULL
|
77017
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEvent.php
|
NULL
|
77018
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – CreateActivityLoggedEvent.php
|
NULL
|
77019
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Activities\Coaching\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Activities\Crm\ActivityLogged;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
class CreateActivityLoggedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(ActivityLogged $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
$this->userPilotService->track(
$event->activity->user,
'logged-activity',
$this->generatePayload($event->activity)
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – CreateActivityLoggedEvent.php
|
NULL
|
77020
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}...
|
PhpStorm
|
faVsco.js – CreateActivityLoggedEvent.php
|
NULL
|
77021
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77022
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77023
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77024
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class
SetupLayouts.php, class
SyncAccount.php, class
SyncContact.php, class
SyncFieldMetadata.php, class
SyncHubspotActiveDeals.php, class
SyncHubspotObjects.php, class
SyncLead.php, class
SyncObjects.php, class
SyncOpportunitiesMissingFieldDataCommand.php, class
SyncOpportunity.php, class
SyncProfileMetadata.php, class
SyncTeamMetadata.php, class
UpdateOpportunitySpecifications.php, class
DealInsights, folder
Dev, folder
Dialers, folder
DTOs, folder...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77025
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class
SetupLayouts.php, class
SyncAccount.php, class
SyncContact.php, class
SyncFieldMetadata.php, class
SyncHubspotActiveDeals.php, class
SyncHubspotObjects.php, class
SyncLead.php, class
SyncObjects.php, class
SyncOpportunitiesMissingFieldDataCommand.php, class
SyncOpportunity.php, class
SyncProfileMetadata.php, class
SyncTeamMetadata.php, class
UpdateOpportunitySpecifications.php, class
DealInsights, folder
Dev, folder
Dialers, folder
DTOs, folder
Elasticsearch, folder
EngagementStats, folder
GeckoExport, folder
Livestream, folder...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77026
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class
SetupLayouts.php, class
SyncAccount.php, class
SyncContact.php, class
SyncFieldMetadata.php, class
SyncHubspotActiveDeals.php, class
SyncHubspotObjects.php, class
SyncLead.php, class
SyncObjects.php, class
SyncOpportunitiesMissingFieldDataCommand.php, class
SyncOpportunity.php, class
SyncProfileMetadata.php, class
SyncTeamMetadata.php, class
UpdateOpportunitySpecifications.php, class
DealInsights, folder
Dev, folder
Dialers, folder
DTOs, folder
Elasticsearch, folder
EngagementStats, folder
GeckoExport, folder
Livestream, folder
Mailboxes, folder...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77027
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class
SetupLayouts.php, class
SyncAccount.php, class
SyncContact.php, class
SyncFieldMetadata.php, class
SyncHubspotActiveDeals.php, class
SyncHubspotObjects.php, class
SyncLead.php, class
SyncObjects.php, class
SyncOpportunitiesMissingFieldDataCommand.php, class
SyncOpportunity.php, class
SyncProfileMetadata.php, class
SyncTeamMetadata.php, class
UpdateOpportunitySpecifications.php, class
DealInsights, folder
Dev, folder
Dialers, folder
DTOs, folder
Elasticsearch, folder
EngagementStats, folder
GeckoExport, folder
Livestream, folder
Mailboxes, folder
Migrate, folder
PlaybackThemes, folder
Playbooks, folder
Playlists, folder
Postmark, folder
ProphetAi, folder
Reports, folder
AutomatedReportsCommand.php, class
AutomatedReportsRetentionPolicyCommand.php, class
AutomatedReportsSendCommand.php, class...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77028
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class
SetupLayouts.php, class
SyncAccount.php, class
SyncContact.php, class
SyncFieldMetadata.php, class
SyncHubspotActiveDeals.php, class
SyncHubspotObjects.php, class
SyncLead.php, class
SyncObjects.php, class
SyncOpportunitiesMissingFieldDataCommand.php, class
SyncOpportunity.php, class
SyncProfileMetadata.php, class
SyncTeamMetadata.php, class...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77029
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class
SetupLayouts.php, class
SyncAccount.php, class
SyncContact.php, class
SyncFieldMetadata.php, class
SyncHubspotActiveDeals.php, class
SyncHubspotObjects.php, class
SyncLead.php, class
SyncObjects.php, class
SyncOpportunitiesMissingFieldDataCommand.php, class
SyncOpportunity.php, class
SyncProfileMetadata.php, class
SyncTeamMetadata.php, class
UpdateOpportunitySpecifications.php, class
DealInsights, folder
Dev, folder
Dialers, folder
DTOs, folder
Elasticsearch, folder
EngagementStats, folder
GeckoExport, folder
Livestream, folder
Mailboxes, folder
Migrate, folder
PlaybackThemes, folder
Playbooks, folder
Playlists, folder
Postmark, folder
ProphetAi, folder
Reports, folder
AutomatedReportsCommand.php, class
AutomatedReportsRetentionPolicyCommand.php, class
AutomatedReportsSendCommand.php, class
CreateMockAskJiminnyReportResultCommand.php, class
DeleteReportCommand.php, class
GenerateMarketingReport.php, class
Team.php, class
Usage.php, class
Slack, folder
Teams, folder
Tracks, folder
Transcription, folder
Twilio, folder
Users, folder
Vocabulary, folder
Zoom, folder
CoachingFeedbacksUpdateEsActivities.php, class
Command.php, class
CreateDatabaseUsers.php, class
DatabaseTableCount.php, class
DeleteOldAiCrmNotesCommand.php, class
DeleteS3LeftoversCommand.php, class
DevPostmanCommand.php, final class
DiarizeViaAiParticipantIdentificationCommand.php, class
EncryptTokensCommand.php, class
EngagementStatsRegenerateCommand.php, class
FeatureFlagsHelper.php
FixCrossTenantIssues.php, class
FlushRolesPermissionsCache.php, class
GenerateInternalWebhookToken.php, class
GroupSetDefaultLanguageCommand.php, final class
HelperTruncateCoachingTables.php, class
HubspotJournalPollingCommand.php, class
HubspotWebhookServiceCommand.php, class
ImportRecording.php, class
ImportUsersFromCsvFile.php, final class
IterateUsersCommand.php, abstract class
JiminnyCacheClearCommand.php, class
JiminnyDebugCommand.php, class
JiminnySetEncryptedTokenManagerModeCommand.php, class
JiminnyTokenInfoCommand.php, class
MakeSlackLiveCoachingChatNotesOn.php, class
ManageScimForTeam.php, class
MarkBranchForEnvironmentPipelineCommand.php, class
MuteOrganizerChannel.php, class
PhpApm.php, class
PropagateCoachingFeedbackCreatedAtToSectionFeedbacks.php, class
PurgeConferences.php, class
PurgeSoftDeletedOpportunitiesCommand.php, class
PurgeSyncBatchesCommand.php, class
RecalculateDealRisksCommand.php, class
RemoveDeleteMarkersCommand.php, class
RemoveExpiredNudgesCommand.php, class
RemoveUnusedParticipantSpeechesCommand.php, class
ResetElasticSearch.php, class
RestoreActivityCrmProviderIdCommand.php, class
RestoreActivityTypeCommand.php, class
SeedActivities.php, class
SyncActivity.php, class
TrackImported.php, class
UpdateActivitiesAverageScoreExcludingFeedbacksNotSetVisibleToAll.php, class
WhichWorkerIsWorkingOnWhichJob.php, class
Scheduling, folder
Kernel.php, class
Contracts, folder
Domain, folder
DTO, folder
Emails, folder
Enums, folder
Events, folder
Activities, folder
ActivityProvider, folder
AiAutomation, folder
Audio, folder
Bots, folder
Coaching, folder
Conferences, folder
Connections, folder
Crm, folder
ActivityCancelled.php, class
ActivityCancelledAsNoShow.php, class
ActivityLeadConverted.php, class
ActivityLinkedToCrm.php, class...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77030
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77031
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77032
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77033
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class
SetupLayouts.php, class
SyncAccount.php, class
SyncContact.php, class
SyncFieldMetadata.php, class
SyncHubspotActiveDeals.php, class
SyncHubspotObjects.php, class
SyncLead.php, class
SyncObjects.php, class
SyncOpportunitiesMissingFieldDataCommand.php, class
SyncOpportunity.php, class
SyncProfileMetadata.php, class
SyncTeamMetadata.php, class
UpdateOpportunitySpecifications.php, class
DealInsights, folder
Dev, folder
Dialers, folder
DTOs, folder
Elasticsearch, folder
EngagementStats, folder
GeckoExport, folder
Livestream, folder
Mailboxes, folder
Migrate, folder
PlaybackThemes, folder
Playbooks, folder
Playlists, folder
Postmark, folder
ProphetAi, folder
Reports, folder
AutomatedReportsCommand.php, class
AutomatedReportsRetentionPolicyCommand.php, class
AutomatedReportsSendCommand.php, class
CreateMockAskJiminnyReportResultCommand.php, class
DeleteReportCommand.php, class
GenerateMarketingReport.php, class
Team.php, class...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77034
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77035
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder...
|
PhpStorm
|
faVsco.js – UserPilotClient.php
|
NULL
|
77036
|
|
Last login: Thu Apr 23 14:01:28 on ttys007
Poetry Last login: Thu Apr 23 14:01:28 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ git status
On branch JY-20157-AJ-report-not-send-notification
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/CreateMockAskJiminnyReportResultCommand.php
ids.txt
raw_sql_query.sql
tests/Unit/Policies/CanAccessAiReportsTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ git status
On branch JY-20372-ai-reports-promotion-pages
Your branch is up to date with 'origin/JY-20372-ai-reports-promotion-pages'.
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/CreateMockAskJiminnyReportResultCommand.php
ids.txt
raw_sql_query.sql
tests/Unit/Policies/CanAccessAiReportsTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20372-ai-reports-promotion-pages) $ git pull
remote: Enumerating objects: 1015, done.
remote: Counting objects: 100% (262/262), done.
remote: Compressing objects: 100% (143/143), done.
remote: Total 1015 (delta 167), reused 129 (delta 119), pack-reused 753 (from 3)
Receiving objects: 100% (1015/1015), 851.14 KiB | 2.09 MiB/s, done.
Resolving deltas: 100% (613/613), completed with 65 local objects.
From github.com:jiminny/app
c3c8d86b22..68bb20c72a JY-20372-ai-reports-promotion-pages -> origin/JY-20372-ai-reports-promotion-pages
3ac71c265a..595c95b7e0 JY-19995-delete-leftover-tracks-command -> origin/JY-19995-delete-leftover-tracks-command
* [new branch] JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null -> origin/JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
* [new branch] JY-20478-stop-sync-calendar-emails -> origin/JY-20478-stop-sync-calendar-emails
d4d05c775b..b11048beed JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
10d290c778..a250abe939 JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-20713-activity-sync-job-restart -> origin/JY-20713-activity-sync-job-restart
242cf1b554..96a22e59f2 JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] fix-close-missing-logger-error -> origin/fix-close-missing-logger-error
0dd5b23990..60fa1787c1 master -> origin/master
f044edca5b..e7e0e50b27 secfix/npm-20260416 -> origin/secfix/npm-20260416
* [new branch] secfix/npm-20260423 -> origin/secfix/npm-20260423
Updating c3c8d86b22..68bb20c72a
Fast-forward
Makefile | 5 +
app/Component/Activity/Services/UpdateActivityService.php | 5 +
app/Component/ActivitySearch/FilterDefinition/ActivityUpdatedDate.php | 7 +-
app/Component/ActivitySearch/Service/ActivitySearch.php | 15 ++
app/Component/AiCallScoring/Services/GenerateAiCallScoringService.php | 6 +
app/Component/AiCallScoring/Services/GetAiCallScoringService.php | 5 +-
app/Component/AiCallScoring/Transformers/AiCallScoringTransformer.php | 2 +-
app/Component/ProphetAi/ProphetClient.php | 5 +
app/Console/Commands/Crm/SyncHubspotObjects.php | 84 +++++++++++
app/Console/Commands/Crm/SyncObjects.php | 82 ++++++-----
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php | 81 +++++++++++
app/Console/Commands/Reports/AutomatedReportsCommand.php | 91 +++++++++++-
app/Console/Commands/Reports/AutomatedReportsSendCommand.php | 40 +++++-
app/Console/Kernel.php | 4 +
app/Contracts/Services/Crm/ImportsBusinessProcessesInterface.php | 15 ++
app/Contracts/Services/Crm/Provider/SalesforceInterface.php | 12 +-
app/Contracts/Services/Crm/ServiceInterface.php | 29 ----
app/Contracts/Services/Crm/SyncCrmMetadataInterface.php | 6 +-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 15 ++
app/Http/Controllers/API/CrmController.php | 19 ++-
app/Http/Controllers/API/UserAutomatedReports/UserAutomatedReportsController.php | 33 ++++-
app/Http/Controllers/Internal/WebhookReceiver/HubspotController.php | 2 +-
app/Http/Controllers/Webhook/Hubspot/EventsController.php | 2 +-
app/Http/Controllers/Webhook/Hubspot/ProcessesWebhooksTrait.php | 64 ++++++---
app/Http/Controllers/Webhook/ReportController.php | 5 +
app/Http/Requests/Settings/AiCallScoring/CreateOrUpdateAiScorecardRequest.php | 2 +-
app/Http/Requests/Settings/AiCallScoring/CreateOrUpdateAiScorecardRuleRequest.php | 2 +-
app/Http/Requests/Settings/AiCallScoring/TestAiCallScoringPromptRequest.php | 2 +-
app/Jobs/Activity/SyncActivity.php | 3 +-
app/Jobs/AutomatedReports/RequestGenerateAskJiminnyReportJob.php | 210 ++++++++++++++++++++++++++++
app/Jobs/AutomatedReports/SendReportJob.php | 2 +
app/Jobs/AutomatedReports/SendReportMailJob.php | 6 +-
app/Jobs/Crm/SyncActivity.php | 10 ++
app/Jobs/Crm/SyncHubspotObjects.php | 120 ++++++++++++++++
app/Jobs/Crm/SyncObjects.php | 26 ++--
app/Jobs/Crm/SyncTeamMetadata.php | 14 +-
app/Listeners/AutomatedReports/UserPilot/TrackAutomatedReportGeneratedEvent.php | 82 +++++++++++
app/Listeners/Crm/ResolveOwner.php | 21 +--
app/Mail/Reports/ReportWithAttachment.php | 7 +-
app/Models/Ai/AiScorecardRuleRun.php | 4 +-
app/Models/Ai/AiScorecardRun.php | 4 +-
app/Models/Contracts/UserContract.php | 6 +
app/Providers/EventServiceProvider.php | 4 +
app/Repositories/AutomatedReportsRepository.php | 76 +++++++++-
app/Repositories/Crm/CrmEntityRepository.php | 40 ++++++
app/Services/Crm/BaseService.php | 13 --
app/Services/Crm/Bullhorn/BullhornService.php | 21 ---
app/Services/Crm/Close/Service.php | 38 -----
app/Services/Crm/Copper/Service.php | 37 -----
app/Services/Crm/Dummy/Service.php | 25 ----
app/Services/Crm/Hubspot/Service.php | 37 -----
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 174 +++++++++++++++++------
app/Services/Crm/Hubspot/ServiceTraits/SyncCrmEntitiesTrait.php | 27 ++--
app/Services/Crm/IntegrationApp/Service.php | 2 +
app/Services/Crm/IntegrationApp/ServiceTraits/NotSupportedTrait.php | 12 +-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmMetadataTrait.php | 5 -
app/Services/Crm/Pipedrive/Service.php | 43 +-----
app/Services/Crm/Salesforce/Service.php | 13 +-
app/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityService.php | 143 +++++++++++++++++++
app/Services/Kiosk/AutomatedReports/AutomatedReportsService.php | 222 +++++++++++++++++++++++++----
front-end/package.json | 2 +-
front-end/src/__mocks__/kit/endpoints/team-insights.js | 1 +
front-end/src/components/AiReports/AiReports.vue | 9 +-
front-end/src/components/AiReports/GridCells/ActionsCell.vue | 107 +++++++++++---
front-end/src/components/AiReports/GridCells/NameCell.vue | 13 +-
front-end/src/components/AiReports/GridCells/TypeIndicator.vue | 26 ++--
front-end/src/components/AiReports/Manage/CreateDefinition/CreateDefinitionDrawer.vue | 4 +-
front-end/src/components/AiReports/Manage/ExpiringCell.vue | 86 ++++++++++++
front-end/src/components/AiReports/Manage/ManageAiReports.less | 6 +
front-end/src/components/AiReports/Manage/ManageAiReports.vue | 6 +-
front-end/src/components/AiReports/Manage/__tests__/ExpiringCell.spec.js | 116 +++++++++++++++
front-end/src/components/AiReports/Manage/__tests__/ManageAiReports.spec.js | 32 +++--
front-end/src/components/AiReports/Manage/__tests__/__snapshots__/create-definition-drawer.output.html | 83 ++++++++---
front-end/src/components/AiReports/Manage/__tests__/__snapshots__/edit-definition-drawer.output.html | 83 ++++++++---
front-end/src/components/AiReports/Manage/__tests__/__snapshots__/manage-ai-reports.output.html | 83 ++++++++---
front-end/src/components/AiReports/Manage/gridConfig.js | 12 +-
front-end/src/components/AiReports/__tests__/AiReports.spec.js | 45 +++++-
front-end/src/components/AiReports/__tests__/__mocks__/data.js | 49 +++++++
front-end/src/components/AiReports/__tests__/__mocks__/requestHandlers.js | 3 +
front-end/src/components/AiReports/__tests__/__snapshots__/ai-reports.output.html | 319 +++++++++++++++++++++++++++++++++++++++++-
front-end/src/components/AiReports/constants.js | 1 +
front-end/src/components/AiReports/gridConfig.js | 2 +-
front-end/src/components/AiReports/useAiReportsGrid.js | 27 ++++
front-end/src/components/Settings/Kiosk/AutomatedReports/RecipientsCell.vue | 36 ++++-
front-end/src/components/Settings/Kiosk/AutomatedReports/UsersCell.vue | 9 +-
front-end/src/components/Settings/Kiosk/AutomatedReports/__tests__/RecipientsCell.spec.js | 171 ++++++++++++++++++++++
front-end/src/components/Settings/OrgSettings/AiAutomation/CallScoring/ScorecardRuleForm.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AICallScoring/aiCallScoringOverTime.ts | 18 ++-
front-end/src/components/shared/GridView/useOrder.js | 6 +-
front-end/src/components/shared/GridView/usePaginationList.js | 7 +-
front-end/yarn.lock | 8 +-
resources/views/emails/reports/ask-jiminny-report-generated.blade.php | 25 ++++
routes/api.php | 1 +
tests/Unit/Component/Activity/Services/UpdateActivityServiceTest.php | 62 ++++++++
tests/Unit/Component/AiCallScoring/Services/GenerateAiCallScoringServiceTest.php | 13 +-
tests/Unit/Console/Commands/Reports/AutomatedReportsCommandTest.php | 468 ++++++++++++++++++++++++++++++++++++++++++-------------------
tests/Unit/Http/Controllers/Webhook/Hubspot/ProcessesWebhooksTraitTest.php | 5 +-
tests/Unit/Http/Controllers/Webhook/ReportControllerTest.php | 9 +-
tests/Unit/Jobs/AutomatedReports/RequestGenerateAskJiminnyReportJobTest.php | 407 +++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Jobs/Crm/SyncActivityTest.php | 74 +++++++---
tests/Unit/Jobs/Crm/SyncHubspotObjectsTest.php | 455 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Jobs/Crm/SyncTeamMetadataTest.php | 8 +-
tests/Unit/Listeners/AutomatedReports/UserPilot/TrackAutomatedReportGeneratedEventTest.php | 199 ++++++++++++++++++++++++++
tests/Unit/Listeners/Crm/ResolveOwnerTest.php | 64 ++++-----
tests/Unit/Repositories/AutomatedReportsRepositoryTest.php | 55 ++++++++
tests/Unit/Services/Crm/Copper/ServiceTest.php | 19 ---
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 74 ++++++----
tests/Unit/Services/Crm/Hubspot/ServiceTraits/SyncCrmEntitiesTraitTest.php | 8 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/NotSupportedTraitTest.php | 76 ++--------
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmMetadataTraitTest.php | 5 -
tests/Unit/Services/Crm/Pipedrive/ServiceTest.php | 11 --
tests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServiceTest.php | 430 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Kiosk/AutomatedReports/AutomatedReportsServiceTest.php | 521 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
113 files changed, 5468 insertions(+), 980 deletions(-)
create mode 100644 app/Console/Commands/Crm/SyncHubspotObjects.php
create mode 100644 app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
create mode 100644 app/Contracts/Services/Crm/ImportsBusinessProcessesInterface.php
create mode 100644 app/Events/AutomatedReports/AutomatedReportGenerated.php
create mode 100644 app/Jobs/AutomatedReports/RequestGenerateAskJiminnyReportJob.php
create mode 100644 app/Jobs/Crm/SyncHubspotObjects.php
create mode 100644 app/Listeners/AutomatedReports/UserPilot/TrackAutomatedReportGeneratedEvent.php
create mode 100644 app/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityService.php
create mode 100644 front-end/src/components/AiReports/Manage/ExpiringCell.vue
create mode 100644 front-end/src/components/AiReports/Manage/__tests__/ExpiringCell.spec.js
create mode 100644 front-end/src/components/AiReports/constants.js
create mode 100644 front-end/src/components/AiReports/useAiReportsGrid.js
create mode 100644 front-end/src/components/Settings/Kiosk/AutomatedReports/__tests__/RecipientsCell.spec.js
create mode 100644 resources/views/emails/reports/ask-jiminny-report-generated.blade.php
create mode 100644 tests/Unit/Jobs/AutomatedReports/RequestGenerateAskJiminnyReportJobTest.php
create mode 100644 tests/Unit/Jobs/Crm/SyncHubspotObjectsTest.php
create mode 100644 tests/Unit/Listeners/AutomatedReports/UserPilot/TrackAutomatedReportGeneratedEventTest.php
create mode 100644 tests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20372-ai-reports-promotion-pages) $ git status
On branch JY-20372-ai-reports-promotion-pages
Your branch is up to date with 'origin/JY-20372-ai-reports-promotion-pages'.
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/Http/Transformers/UserTransformer.php
modified: app/Jobs/Team/SyncToIntercom.php
modified: app/Repositories/AutomatedReportsRepository.php
modified: app/Services/PlaybackService.php
modified: config/logging.php
modified: tests/Unit/Repositories/AutomatedReportsRepositoryTest.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/CreateMockAskJiminnyReportResultCommand.php
ids.txt
raw_sql_query.sql
tests/Unit/Policies/CanAccessAiReportsTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20372-ai-reports-promotion-pages) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running analysis on 7 cores with 10 files per process.
Parallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!
Loaded config default from ".php-cs-fixer.dist.php".
5613/5613 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (braces_position, statement_indentation)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -37,15 +37,14 @@
JobDispatcherInterface $jobDispatcher,
AutomatedReportsService $automatedReportsService,
AutomatedReportsRepository $automatedReportsRepository,
- ): void
- {
-// $user = User::find(143);
-// $count = $automatedReportsRepository->countUserReports($user);
-// $this->info("Count: {$count}");
-// $count = $automatedReportsRepository->countAllUserReports($user);
-// $this->info("All count: {$count}");
-//
-// exit(1);
+ ): void {
+ // $user = User::find(143);
+ // $count = $automatedReportsRepository->countUserReports($user);
+ // $this->info("Count: {$count}");
+ // $count = $automatedReportsRepository->countAllUserReports($user);
+ // $this->info("All count: {$count}");
+ //
+ // exit(1);
$now = Carbon::now()->subDay(1);
$this->info("Now: {$now->toDateTimeString()}");
@@ -52,18 +51,18 @@
$weekStart = Carbon::getWeekStartsAt();
$this->info("Now: {$weekStart}");
-// $from = $now->copy()->previousWeekday()->startOfDay();
-// $to = $now->copy()->previousWeekday()->endOfDay();
+ // $from = $now->copy()->previousWeekday()->startOfDay();
+ // $to = $now->copy()->previousWeekday()->endOfDay();
-// $fromOld = $now->copy()->subWeeks(1)->startOfDay();
-// $toOld = $now->copy()->subDay()->endOfDay();
-// $fromNew = $now->copy()->subWeek()->startOfWeek();
-// $toNew = $now->copy()->subWeek()->endOfWeek();
+ // $fromOld = $now->copy()->subWeeks(1)->startOfDay();
+ // $toOld = $now->copy()->subDay()->endOfDay();
+ // $fromNew = $now->copy()->subWeek()->startOfWeek();
+ // $toNew = $now->copy()->subWeek()->endOfWeek();
-// $fromOld = $now->copy()->subMonths(1)->startOfDay();
-// $toOld = $now->copy()->subDay()->endOfDay();
-// $fromNew = $now->copy()->subMonthNoOverflow()->startOfMonth();
-// $toNew = $now->copy()->subMonthNoOverflow()->endOfMonth();
+ // $fromOld = $now->copy()->subMonths(1)->startOfDay();
+ // $toOld = $now->copy()->subDay()->endOfDay();
+ // $fromNew = $now->copy()->subMonthNoOverflow()->startOfMonth();
+ // $toNew = $now->copy()->subMonthNoOverflow()->endOfMonth();
$fromOld = $now->copy()->subMonths(3)->startOfDay();
$toOld = $now->copy()->subDay()->endOfDay();
----------- end diff -----------
Fixed 1 of 5613 files in 66.818 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running analysis on 7 cores with 10 files per process.
Parallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!
Loaded config default from ".php-cs-fixer.dist.php".
5616/5616 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5616 files in 65.183 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ ;xd
docker exec -it docker_lamp_1 bash -c "mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini"
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running analysis on 7 cores with 10 files per process.
Parallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!
Loaded config default from ".php-cs-fixer.dist.php".
5616/5616 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5616 files in 40.863 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 53, done.
remote: Counting objects: 100% (53/53), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 53 (delta 33), reused 49 (delta 30), pack-reused 0 (from 0)
Unpacking objects: 100% (53/53), 46.00 KiB | 523.00 KiB/s, done.
From github.com:jiminny/app
b1d5c77ad1..dfc8da14d2 JY-20372-ai-reports-promotion-pages -> origin/JY-20372-ai-reports-promotion-pages
+ 47037d2c29...5138acf14e secfix/npm-20260423 -> origin/secfix/npm-20260423 (forced update)
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20738-debug-AJ-tracking-UP
Switched to a new branch 'JY-20738-debug-AJ-tracking-UP'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20738-debug-AJ-tracking-UP) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running analysis on 7 cores with 10 files per process.
Parallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!
Loaded config default from ".php-cs-fixer.dist.php".
5621/5621 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5621 files in 22.942 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at https://docs.docker.com/go/debug-cli/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20738-debug-AJ-tracking-UP) $
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
77037
|
|
Last login: Thu Apr 23 14:01:28 on ttys007
Poetry Last login: Thu Apr 23 14:01:28 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ git status
On branch JY-20157-AJ-report-not-send-notification
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/CreateMockAskJiminnyReportResultCommand.php
ids.txt
raw_sql_query.sql
tests/Unit/Policies/CanAccessAiReportsTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ git status
On branch JY-20372-ai-reports-promotion-pages
Your branch is up to date with 'origin/JY-20372-ai-reports-promotion-pages'.
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/CreateMockAskJiminnyReportResultCommand.php
ids.txt
raw_sql_query.sql
tests/Unit/Policies/CanAccessAiReportsTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20372-ai-reports-promotion-pages) $ git pull
remote: Enumerating objects: 1015, done.
remote: Counting objects: 100% (262/262), done.
remote: Compressing objects: 100% (143/143), done.
remote: Total 1015 (delta 167), reused 129 (delta 119), pack-reused 753 (from 3)
Receiving objects: 100% (1015/1015), 851.14 KiB | 2.09 MiB/s, done.
Resolving deltas: 100% (613/613), completed with 65 local objects.
From github.com:jiminny/app
c3c8d86b22..68bb20c72a JY-20372-ai-reports-promotion-pages -> origin/JY-20372-ai-reports-promotion-pages
3ac71c265a..595c95b7e0 JY-19995-delete-leftover-tracks-command -> origin/JY-19995-delete-leftover-tracks-command
* [new branch] JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null -> origin/JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
* [new branch] JY-20478-stop-sync-calendar-emails -> origin/JY-20478-stop-sync-calendar-emails
d4d05c775b..b11048beed JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
10d290c778..a250abe939 JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-20713-activity-sync-job-restart -> origin/JY-20713-activity-sync-job-restart
242cf1b554..96a22e59f2 JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] fix-close-missing-logger-error -> origin/fix-close-missing-logger-error
0dd5b23990..60fa1787c1 master -> origin/master
f044edca5b..e7e0e50b27 secfix/npm-20260416 -> origin/secfix/npm-20260416
* [new branch] secfix/npm-20260423 -> origin/secfix/npm-20260423
Updating c3c8d86b22..68bb20c72a
Fast-forward
Makefile | 5 +
app/Component/Activity/Services/UpdateActivityService.php | 5 +
app/Component/ActivitySearch/FilterDefinition/ActivityUpdatedDate.php | 7 +-
app/Component/ActivitySearch/Service/ActivitySearch.php | 15 ++
app/Component/AiCallScoring/Services/GenerateAiCallScoringService.php | 6 +
app/Component/AiCallScoring/Services/GetAiCallScoringService.php | 5 +-
app/Component/AiCallScoring/Transformers/AiCallScoringTransformer.php | 2 +-
app/Component/ProphetAi/ProphetClient.php | 5 +
app/Console/Commands/Crm/SyncHubspotObjects.php | 84 +++++++++++
app/Console/Commands/Crm/SyncObjects.php | 82 ++++++-----
app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php | 81 +++++++++++
app/Console/Commands/Reports/AutomatedReportsCommand.php | 91 +++++++++++-
app/Console/Commands/Reports/AutomatedReportsSendCommand.php | 40 +++++-
app/Console/Kernel.php | 4 +
app/Contracts/Services/Crm/ImportsBusinessProcessesInterface.php | 15 ++
app/Contracts/Services/Crm/Provider/SalesforceInterface.php | 12 +-
app/Contracts/Services/Crm/ServiceInterface.php | 29 ----
app/Contracts/Services/Crm/SyncCrmMetadataInterface.php | 6 +-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 15 ++
app/Http/Controllers/API/CrmController.php | 19 ++-
app/Http/Controllers/API/UserAutomatedReports/UserAutomatedReportsController.php | 33 ++++-
app/Http/Controllers/Internal/WebhookReceiver/HubspotController.php | 2 +-
app/Http/Controllers/Webhook/Hubspot/EventsController.php | 2 +-
app/Http/Controllers/Webhook/Hubspot/ProcessesWebhooksTrait.php | 64 ++++++---
app/Http/Controllers/Webhook/ReportController.php | 5 +
app/Http/Requests/Settings/AiCallScoring/CreateOrUpdateAiScorecardRequest.php | 2 +-
app/Http/Requests/Settings/AiCallScoring/CreateOrUpdateAiScorecardRuleRequest.php | 2 +-
app/Http/Requests/Settings/AiCallScoring/TestAiCallScoringPromptRequest.php | 2 +-
app/Jobs/Activity/SyncActivity.php | 3 +-
app/Jobs/AutomatedReports/RequestGenerateAskJiminnyReportJob.php | 210 ++++++++++++++++++++++++++++
app/Jobs/AutomatedReports/SendReportJob.php | 2 +
app/Jobs/AutomatedReports/SendReportMailJob.php | 6 +-
app/Jobs/Crm/SyncActivity.php | 10 ++
app/Jobs/Crm/SyncHubspotObjects.php | 120 ++++++++++++++++
app/Jobs/Crm/SyncObjects.php | 26 ++--
app/Jobs/Crm/SyncTeamMetadata.php | 14 +-
app/Listeners/AutomatedReports/UserPilot/TrackAutomatedReportGeneratedEvent.php | 82 +++++++++++
app/Listeners/Crm/ResolveOwner.php | 21 +--
app/Mail/Reports/ReportWithAttachment.php | 7 +-
app/Models/Ai/AiScorecardRuleRun.php | 4 +-
app/Models/Ai/AiScorecardRun.php | 4 +-
app/Models/Contracts/UserContract.php | 6 +
app/Providers/EventServiceProvider.php | 4 +
app/Repositories/AutomatedReportsRepository.php | 76 +++++++++-
app/Repositories/Crm/CrmEntityRepository.php | 40 ++++++
app/Services/Crm/BaseService.php | 13 --
app/Services/Crm/Bullhorn/BullhornService.php | 21 ---
app/Services/Crm/Close/Service.php | 38 -----
app/Services/Crm/Copper/Service.php | 37 -----
app/Services/Crm/Dummy/Service.php | 25 ----
app/Services/Crm/Hubspot/Service.php | 37 -----
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 174 +++++++++++++++++------
app/Services/Crm/Hubspot/ServiceTraits/SyncCrmEntitiesTrait.php | 27 ++--
app/Services/Crm/IntegrationApp/Service.php | 2 +
app/Services/Crm/IntegrationApp/ServiceTraits/NotSupportedTrait.php | 12 +-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmMetadataTrait.php | 5 -
app/Services/Crm/Pipedrive/Service.php | 43 +-----
app/Services/Crm/Salesforce/Service.php | 13 +-
app/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityService.php | 143 +++++++++++++++++++
app/Services/Kiosk/AutomatedReports/AutomatedReportsService.php | 222 +++++++++++++++++++++++++----
front-end/package.json | 2 +-
front-end/src/__mocks__/kit/endpoints/team-insights.js | 1 +
front-end/src/components/AiReports/AiReports.vue | 9 +-
front-end/src/components/AiReports/GridCells/ActionsCell.vue | 107 +++++++++++---
front-end/src/components/AiReports/GridCells/NameCell.vue | 13 +-
front-end/src/components/AiReports/GridCells/TypeIndicator.vue | 26 ++--
front-end/src/components/AiReports/Manage/CreateDefinition/CreateDefinitionDrawer.vue | 4 +-
front-end/src/components/AiReports/Manage/ExpiringCell.vue | 86 ++++++++++++
front-end/src/components/AiReports/Manage/ManageAiReports.less | 6 +
front-end/src/components/AiReports/Manage/ManageAiReports.vue | 6 +-
front-end/src/components/AiReports/Manage/__tests__/ExpiringCell.spec.js | 116 +++++++++++++++
front-end/src/components/AiReports/Manage/__tests__/ManageAiReports.spec.js | 32 +++--
front-end/src/components/AiReports/Manage/__tests__/__snapshots__/create-definition-drawer.output.html | 83 ++++++++---
front-end/src/components/AiReports/Manage/__tests__/__snapshots__/edit-definition-drawer.output.html | 83 ++++++++---
front-end/src/components/AiReports/Manage/__tests__/__snapshots__/manage-ai-reports.output.html | 83 ++++++++---
front-end/src/components/AiReports/Manage/gridConfig.js | 12 +-
front-end/src/components/AiReports/__tests__/AiReports.spec.js | 45 +++++-
front-end/src/components/AiReports/__tests__/__mocks__/data.js | 49 +++++++
front-end/src/components/AiReports/__tests__/__mocks__/requestHandlers.js | 3 +
front-end/src/components/AiReports/__tests__/__snapshots__/ai-reports.output.html | 319 +++++++++++++++++++++++++++++++++++++++++-
front-end/src/components/AiReports/constants.js | 1 +
front-end/src/components/AiReports/gridConfig.js | 2 +-
front-end/src/components/AiReports/useAiReportsGrid.js | 27 ++++
front-end/src/components/Settings/Kiosk/AutomatedReports/RecipientsCell.vue | 36 ++++-
front-end/src/components/Settings/Kiosk/AutomatedReports/UsersCell.vue | 9 +-
front-end/src/components/Settings/Kiosk/AutomatedReports/__tests__/RecipientsCell.spec.js | 171 ++++++++++++++++++++++
front-end/src/components/Settings/OrgSettings/AiAutomation/CallScoring/ScorecardRuleForm.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AICallScoring/aiCallScoringOverTime.ts | 18 ++-
front-end/src/components/shared/GridView/useOrder.js | 6 +-
front-end/src/components/shared/GridView/usePaginationList.js | 7 +-
front-end/yarn.lock | 8 +-
resources/views/emails/reports/ask-jiminny-report-generated.blade.php | 25 ++++
routes/api.php | 1 +
tests/Unit/Component/Activity/Services/UpdateActivityServiceTest.php | 62 ++++++++
tests/Unit/Component/AiCallScoring/Services/GenerateAiCallScoringServiceTest.php | 13 +-
tests/Unit/Console/Commands/Reports/AutomatedReportsCommandTest.php | 468 ++++++++++++++++++++++++++++++++++++++++++-------------------
tests/Unit/Http/Controllers/Webhook/Hubspot/ProcessesWebhooksTraitTest.php | 5 +-
tests/Unit/Http/Controllers/Webhook/ReportControllerTest.php | 9 +-
tests/Unit/Jobs/AutomatedReports/RequestGenerateAskJiminnyReportJobTest.php | 407 +++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Jobs/Crm/SyncActivityTest.php | 74 +++++++---
tests/Unit/Jobs/Crm/SyncHubspotObjectsTest.php | 455 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Jobs/Crm/SyncTeamMetadataTest.php | 8 +-
tests/Unit/Listeners/AutomatedReports/UserPilot/TrackAutomatedReportGeneratedEventTest.php | 199 ++++++++++++++++++++++++++
tests/Unit/Listeners/Crm/ResolveOwnerTest.php | 64 ++++-----
tests/Unit/Repositories/AutomatedReportsRepositoryTest.php | 55 ++++++++
tests/Unit/Services/Crm/Copper/ServiceTest.php | 19 ---
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 74 ++++++----
tests/Unit/Services/Crm/Hubspot/ServiceTraits/SyncCrmEntitiesTraitTest.php | 8 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/NotSupportedTraitTest.php | 76 ++--------
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmMetadataTraitTest.php | 5 -
tests/Unit/Services/Crm/Pipedrive/ServiceTest.php | 11 --
tests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServiceTest.php | 430 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Kiosk/AutomatedReports/AutomatedReportsServiceTest.php | 521 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
113 files changed, 5468 insertions(+), 980 deletions(-)
create mode 100644 app/Console/Commands/Crm/SyncHubspotObjects.php
create mode 100644 app/Console/Commands/Crm/Traits/SyncObjectsCommandTrait.php
create mode 100644 app/Contracts/Services/Crm/ImportsBusinessProcessesInterface.php
create mode 100644 app/Events/AutomatedReports/AutomatedReportGenerated.php
create mode 100644 app/Jobs/AutomatedReports/RequestGenerateAskJiminnyReportJob.php
create mode 100644 app/Jobs/Crm/SyncHubspotObjects.php
create mode 100644 app/Listeners/AutomatedReports/UserPilot/TrackAutomatedReportGeneratedEvent.php
create mode 100644 app/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityService.php
create mode 100644 front-end/src/components/AiReports/Manage/ExpiringCell.vue
create mode 100644 front-end/src/components/AiReports/Manage/__tests__/ExpiringCell.spec.js
create mode 100644 front-end/src/components/AiReports/constants.js
create mode 100644 front-end/src/components/AiReports/useAiReportsGrid.js
create mode 100644 front-end/src/components/Settings/Kiosk/AutomatedReports/__tests__/RecipientsCell.spec.js
create mode 100644 resources/views/emails/reports/ask-jiminny-report-generated.blade.php
create mode 100644 tests/Unit/Jobs/AutomatedReports/RequestGenerateAskJiminnyReportJobTest.php
create mode 100644 tests/Unit/Jobs/Crm/SyncHubspotObjectsTest.php
create mode 100644 tests/Unit/Listeners/AutomatedReports/UserPilot/TrackAutomatedReportGeneratedEventTest.php
create mode 100644 tests/Unit/Services/Kiosk/AutomatedReports/AskJiminnyReportActivityServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20372-ai-reports-promotion-pages) $ git status
On branch JY-20372-ai-reports-promotion-pages
Your branch is up to date with 'origin/JY-20372-ai-reports-promotion-pages'.
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/Http/Transformers/UserTransformer.php
modified: app/Jobs/Team/SyncToIntercom.php
modified: app/Repositories/AutomatedReportsRepository.php
modified: app/Services/PlaybackService.php
modified: config/logging.php
modified: tests/Unit/Repositories/AutomatedReportsRepositoryTest.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/CreateMockAskJiminnyReportResultCommand.php
ids.txt
raw_sql_query.sql
tests/Unit/Policies/CanAccessAiReportsTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20372-ai-reports-promotion-pages) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running analysis on 7 cores with 10 files per process.
Parallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!
Loaded config default from ".php-cs-fixer.dist.php".
5613/5613 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (braces_position, statement_indentation)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -37,15 +37,14 @@
JobDispatcherInterface $jobDispatcher,
AutomatedReportsService $automatedReportsService,
AutomatedReportsRepository $automatedReportsRepository,
- ): void
- {
-// $user = User::find(143);
-// $count = $automatedReportsRepository->countUserReports($user);
-// $this->info("Count: {$count}");
-// $count = $automatedReportsRepository->countAllUserReports($user);
-// $this->info("All count: {$count}");
-//
-// exit(1);
+ ): void {
+ // $user = User::find(143);
+ // $count = $automatedReportsRepository->countUserReports($user);
+ // $this->info("Count: {$count}");
+ // $count = $automatedReportsRepository->countAllUserReports($user);
+ // $this->info("All count: {$count}");
+ //
+ // exit(1);
$now = Carbon::now()->subDay(1);
$this->info("Now: {$now->toDateTimeString()}");
@@ -52,18 +51,18 @@
$weekStart = Carbon::getWeekStartsAt();
$this->info("Now: {$weekStart}");
-// $from = $now->copy()->previousWeekday()->startOfDay();
-// $to = $now->copy()->previousWeekday()->endOfDay();
+ // $from = $now->copy()->previousWeekday()->startOfDay();
+ // $to = $now->copy()->previousWeekday()->endOfDay();
-// $fromOld = $now->copy()->subWeeks(1)->startOfDay();
-// $toOld = $now->copy()->subDay()->endOfDay();
-// $fromNew = $now->copy()->subWeek()->startOfWeek();
-// $toNew = $now->copy()->subWeek()->endOfWeek();
+ // $fromOld = $now->copy()->subWeeks(1)->startOfDay();
+ // $toOld = $now->copy()->subDay()->endOfDay();
+ // $fromNew = $now->copy()->subWeek()->startOfWeek();
+ // $toNew = $now->copy()->subWeek()->endOfWeek();
-// $fromOld = $now->copy()->subMonths(1)->startOfDay();
-// $toOld = $now->copy()->subDay()->endOfDay();
-// $fromNew = $now->copy()->subMonthNoOverflow()->startOfMonth();
-// $toNew = $now->copy()->subMonthNoOverflow()->endOfMonth();
+ // $fromOld = $now->copy()->subMonths(1)->startOfDay();
+ // $toOld = $now->copy()->subDay()->endOfDay();
+ // $fromNew = $now->copy()->subMonthNoOverflow()->startOfMonth();
+ // $toNew = $now->copy()->subMonthNoOverflow()->endOfMonth();
$fromOld = $now->copy()->subMonths(3)->startOfDay();
$toOld = $now->copy()->subDay()->endOfDay();
----------- end diff -----------
Fixed 1 of 5613 files in 66.818 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running analysis on 7 cores with 10 files per process.
Parallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!
Loaded config default from ".php-cs-fixer.dist.php".
5616/5616 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5616 files in 65.183 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ ;xd
docker exec -it docker_lamp_1 bash -c "mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini"
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running analysis on 7 cores with 10 files per process.
Parallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!
Loaded config default from ".php-cs-fixer.dist.php".
5616/5616 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5616 files in 40.863 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 53, done.
remote: Counting objects: 100% (53/53), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 53 (delta 33), reused 49 (delta 30), pack-reused 0 (from 0)
Unpacking objects: 100% (53/53), 46.00 KiB | 523.00 KiB/s, done.
From github.com:jiminny/app
b1d5c77ad1..dfc8da14d2 JY-20372-ai-reports-promotion-pages -> origin/JY-20372-ai-reports-promotion-pages
+ 47037d2c29...5138acf14e secfix/npm-20260423 -> origin/secfix/npm-20260423 (forced update)
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20738-debug-AJ-tracking-UP
Switched to a new branch 'JY-20738-debug-AJ-tracking-UP'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20738-debug-AJ-tracking-UP) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running analysis on 7 cores with 10 files per process.
Parallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!
Loaded config default from ".php-cs-fixer.dist.php".
5621/5621 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5621 files in 22.942 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at https://docs.docker.com/go/debug-cli/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20738-debug-AJ-tracking-UP) $
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
77038
|
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-22 12:21:40
Now: 0
From old: 2026-04-15 00:00:00
To old: 2026-04-21 23:59:59
From new: 2026-04-12 00:00:00
To new: 2026-04-18 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-22 12:22:16
Now: 0
From old: 2026-03-22 00:00:00
To old: 2026-04-21 23:59:59
From new: 2026-03-01 00:00:00
To new: 2026-03-31 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-22 12:22:32
Now: 0
From old: 2026-01-22 00:00:00
To old: 2026-04-21 23:59:59
From new: 2026-01-01 00:00:00
To new: 2026-03-31 23:59:59
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 https://docs.docker.com/go/debug-cli/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ dev
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
iTerm2
|
DEV (docker)
|
NULL
|
77039
|
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-22 12:21:40
Now: 0
From old: 2026-04-15 00:00:00
To old: 2026-04-21 23:59:59
From new: 2026-04-12 00:00:00
To new: 2026-04-18 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-22 12:22:16
Now: 0
From old: 2026-03-22 00:00:00
To old: 2026-04-21 23:59:59
From new: 2026-03-01 00:00:00
To new: 2026-03-31 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-22 12:22:32
Now: 0
From old: 2026-01-22 00:00:00
To old: 2026-04-21 23:59:59
From new: 2026-01-01 00:00:00
To new: 2026-03-31 23:59:59
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 https://docs.docker.com/go/debug-cli/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20157-AJ-report-not-send-notification) $ dev
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
iTerm2
|
DEV (docker)
|
NULL
|
77040
|
|
shell
DOCKER
Close Tab
DEV (docker)
Close Tab
APP shell
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
login
Close Tab
⌥⌘1
Firefox• 0FileEditViewHistory→BookmarksProfilesToolsWindowHelpmeet.google.com/agt-teir-cwt?authuser=lukas.kovalik%40jiminny.com•Daily - Platform - now100% K78 • Fri 24 Apr 9:46:13|=Pop out this videoNikolay NikolovStefka StoyanovaGalya DimitrovaLukas Kovalik9:46 AM | Daily - Platform• 0:27...
|
iTerm2
|
DEV (docker)
|
NULL
|
77041
|
|
owner. skipping...
docker_lamp_1 | Team Test (5e0 owner. skipping...
docker_lamp_1 | Team Test (5e06dcee-0613-470e-9a77-2c283198f3bf) is not yet assigned an owner. skipping...
docker_lamp_1 | Team test ogg auto sync (da44776e-306f-427a-83d8-a1b4baa5537e) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Tourlaner (d9b71080-388b-4cf5-8175-aa0f29bee635) is not yet assigned an owner. skipping...
docker_lamp_1 | Dispatched 4 HubSpot sync jobs
docker_lamp_1 | ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:sync-hubspot-objects > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:36:10 Running ['artisan' activity:notify-not-logged] 2026-04-24 08:36:10 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:36:11 Jiminny\Jobs\Crm\SyncHubspotObjects ...... 520.65ms DONE
docker_lamp_1 | 2026-04-24 08:36:11 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:36:11 Jiminny\Jobs\Crm\SyncHubspotObjects ....... 10.72ms DONE
docker_lamp_1 | 2026-04-24 08:36:11 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:36:11 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] 9.24ms DONE
docker_lamp_1 | 2026-04-24 08:36:11 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:36:11 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] 8.79ms DONE
docker_lamp_1 | . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:notify-not-logged > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:36:11 Running ['artisan' activity:status-count] {"canceled":11}...... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:status-count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:36:12 Running ['artisan' mailbox:sync] Queueing 1 inbox(es) for sync.
docker_lamp_1 | [PASSWORD_DOTS] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:sync > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-24 08:36:15 Jiminny\Jobs\Mailbox\SyncInbox [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:36:15 Jiminny\Jobs\Mailbox\SyncInbox [PASSWORD_DOTS] 42.24ms DONE
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:37:02 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:37:03 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:37:05 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:37:06 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:37:07 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:37:08 Running ['artisan' mailbox:batch:create] ....... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:create > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:37:09 Running ['artisan' activity:sync 'ringcentral' 'avaya' 'telus' 'talkdesk' --from='2026-04-24 08:21:00' --to='2026-04-24 08:37:00'] 2026-04-24 08:37:09 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:37:09 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] 29.25ms DONE
docker_lamp_1 | 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:sync 'ringcentral' 'avaya' 'telus' 'talkdesk' --from='2026-04-24 08:21:00' --to='2026-04-24 08:37:00' > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:38:01 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:38:03 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:38:04 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:38:05 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:38:06 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:38:07 Running ['artisan' conference:monitor:count] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:38:08 Running ['artisan' mailbox:batch:retry-failed --max-batches=15] in background 0.94ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' mailbox:batch:retry-failed --max-batches=15 > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-390defd641effba0f73a895e426ded4cf2ba7f11" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:39:03 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:39:04 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:39:05 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:39:07 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:39:08 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:39:09 Running ['artisan' activity:aircall:check-and-renew] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:aircall:check-and-renew > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:39:11 Running ['artisan' track:retry-failed-downloads] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' track:retry-failed-downloads > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:40:02 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:03 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:05 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:06 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:07 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:08 Running ['artisan' conference:monitor:count] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:09 Running ['artisan' activity:purge-stale] ....... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:purge-stale > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:10 Running ['artisan' mailbox:text-relay:sync] {
docker_lamp_1 | "error": "invalid_request",
docker_lamp_1 | "error_description": "Invalid impersonation \u0026quot;sub\u0026quot; field: @"
docker_lamp_1 | }
docker_lamp_1 | .... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:text-relay:sync > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:12 Running ['artisan' conference:pre-meeting-notification] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:pre-meeting-notification > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:13 Running ['artisan' conference:monitor:start] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:start > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:14 Running ['artisan' conference:monitor:end] ..... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:end > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:15 Running ['artisan' jiminny:fix-hubspot-tokens] . 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:fix-hubspot-tokens > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:18 Running ['artisan' conference:pre-meeting-reminder] in background 1.98ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' conference:pre-meeting-reminder > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-805efb160ee8d9da02e60364ace7970eb2b35f31" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-24 08:40:18 Running ['artisan' hubspot:journal-poll --start] in background 1.55ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' hubspot:journal-poll --start > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-e26d77f915d2c55fe91ca4148a230e32eaa1865e" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-24 08:40:18 Running ['artisan' jiminny:transcription:retry-failed] No failed transcriptions found.
docker_lamp_1 | 🚀 Starting HubSpot journal polling service...
docker_lamp_1 | 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:transcription:retry-failed > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:19 Running ['artisan' crm:reset-governor] [PASSWORD_DOTS] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:reset-governor > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:40:20 Running ['artisan' crm:bullhorn:ping --heartbeat] 0 social account(s) to be processed ...
docker_lamp_1 |
docker_lamp_1 | Done!
docker_lamp_1 | 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:bullhorn:ping --heartbeat > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:41:01 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:41:03 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:41:04 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:41:05 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:41:06 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:41:07 Running ['artisan' crm:sync-hubspot-objects] [HubSpot] Syncing objects for Hubspot (abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4) since 2026-04-24 08:36:10 (delay: 0s)
docker_lamp_1 | Team TestV (2708d27a-7f31-4d90-bd2b-b5bde1c0211e) is not yet assigned an owner. skipping...
docker_lamp_1 | Team KioskAccount (dedab245-604c-4cd2-a83e-4b9e034b2772) is not yet assigned an owner. skipping...
docker_lamp_1 | [HubSpot] Syncing objects for InsightSquared (b2b115eb-93ce-4d1b-929c-173757df8fba) since 2026-02-17 15:09:59 (delay: 0s)
docker_lamp_1 | Team Aircall Demo (7980e5eb-b11c-4cee-9c21-8bb29ba85f3b) is not yet assigned an owner. skipping...
docker_lamp_1 | [HubSpot] Syncing objects for GoStudent UAT (b2d49a54-b645-4637-a7ae-a86cfce6e8e4) since 2026-02-17 15:09:59 (delay: 1s)
docker_lamp_1 | [HubSpot] Syncing objects for JustCall (c6b9d6b0-b48d-4832-a68c-a57d60651888) since 2026-02-17 15:07:41 (delay: 1s)
docker_lamp_1 | Team Twilio Video (c334ca55-b230-411c-b10e-31c8204bd07b) is not yet assigned an owner. skipping...
docker_lamp_1 | Team My Test Account 3000 (dbc9990d-b35f-4e38-9550-22cdd6059514) is not yet assigned an owner. skipping...
docker_lamp_1 | Team test (7997eb70-8aa4-491a-870d-311977568df4) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Test (5e06dcee-0613-470e-9a77-2c283198f3bf) is not yet assigned an owner. skipping...
docker_lamp_1 | Team test ogg auto sync (da44776e-306f-427a-83d8-a1b4baa5537e) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Tourlaner (d9b71080-388b-4cf5-8175-aa0f29bee635) is not yet assigned an owner. skipping...
docker_lamp_1 | Dispatched 4 HubSpot sync jobs
docker_lamp_1 | ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:sync-hubspot-objects > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-24 08:41:09 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:41:10 Jiminny\Jobs\Crm\SyncHubspotObjects ...... 582.18ms DONE
docker_lamp_1 | 2026-04-24 08:41:10 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:41:10 Jiminny\Jobs\Crm\SyncHubspotObjects ....... 14.02ms DONE
docker_lamp_1 | 2026-04-24 08:41:10 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:41:10 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] 7.18ms DONE
docker_lamp_1 | 2026-04-24 08:41:10 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:41:10 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] 7.36ms DONE
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:42:02 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:42:03 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:42:05 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:42:06 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:42:07 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:42:08 Running ['artisan' conference:monitor:count] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:42:09 Running ['artisan' mailbox:batch:create] ....... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:create > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-24 08:42:10 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:42:10 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] 71.62ms DONE
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:43:02 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:43:04 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:43:05 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:43:06 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:43:07 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:43:09 Running ['artisan' mailbox:batch:retry-failed --max-batches=15] in background 0.99ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' mailbox:batch:retry-failed --max-batches=15 > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-390defd641effba0f73a895e426ded4cf2ba7f11" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-24 08:43:09 Running ['artisan' calendar:sync --dateMode=daily] 2026-04-24 08:43:15 Jiminny\Jobs\Calendar\SyncCalendarEvents ....... RUNNING
docker_lamp_1 | 2026-04-24 08:43:16 Jiminny\Jobs\Calendar\SyncCalendarEvents . 461.81ms DONE
docker_lamp_1 | 7s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' calendar:sync --dateMode=daily > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-24 08:43:18 Jiminny\Jobs\Calendar\SyncCalendarEvents ....... RUNNING
docker_lamp_1 | 2026-04-24 08:43:18 Jiminny\Jobs\Calendar\SyncCalendarEvents . 317.47ms DONE
docker_lamp_1 | 2026-04-24 08:43:18 Jiminny\Jobs\Calendar\SyncCalendarEvents ....... RUNNING
docker_lamp_1 | 2026-04-24 08:43:18 Jiminny\Jobs\Calendar\SyncCalendarEvents .. 26.26ms DONE
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:44:02 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:44:03 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:44:04 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:44:05 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:44:06 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:44:07 Running ['artisan' conference:monitor:count] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:44:08 Running ['artisan' crm:sync-objects] Syncing objects for Salesforce Team (6473c918-d8db-4ded-a52b-4febfd7b7c02) since 2026-03-19 20:14:10 (delay: 0s)
docker_lamp_1 | Team Edge Communications (c3a725ef-fc5e-4c7b-9231-6379b2834101) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Burlington Textiles Corp of America (72c0ccae-28a5-44bd-a0b4-958e73135463) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Uber (1c523aed-80e3-4c44-b215-7f0b027a03a2) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Vonage (c6030540-121e-4d6b-9261-8d82105817bf) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Nexmo (eaba09e1-4973-4077-b041-ad389248318c) is not yet assigned an owner. skipping...
docker_lamp_1 | Team SF (018e2d7c-ed01-4af2-be33-5c28f454a185) is not yet assigned an owner. skipping...
docker_lamp_1 | Team NewAccount (27325244-25d7-4431-aac4-9ddb2bde6b45) is not yet assigned an owner. skipping...
docker_lamp_1 | Syncing objects for Pipedrive, Inc. (51467630-d89d-480b-be20-933e64a042f7) since 2026-04-08 18:14:13 (delay: 2s)
docker_lamp_1 | Syncing objects for Copper (396ed57c-e3c4-49be-8290-37c32955f7c7) since 2026-04-24 07:44:14 (delay: 4s)
docker_lamp_1 | Syncing objects for Pipedrive External Test (fda3cbdf-1117-4ba5-86f8-775f548b3a28) since 2026-04-08 18:14:16 (delay: 6s)
docker_lamp_1 | Syncing objects for Close (3ff5a02a-86fb-4357-b1d6-a04e26c38602) since 2026-04-24 07:44:18 (delay: 8s)
docker_lamp_1 | Team DeewanyAccount (cfaf90cb-ecf0-432c-a655-a22d9985e4c8) is not yet assigned an owner. skipping...
docker_lamp_1 | Syncing objects for Bullhorn (1640a0ac-19da-4c3b-90f7-87525f07a6d2) since 2026-02-19 13:28:05 (delay: 10s)
docker_lamp_1 | Team Horen test (93d8f8f2-dd61-4137-97de-a02a9d3751bb) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Ahmed Hamadi (191379e4-5e90-4419-8ffd-4804a5abb565) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Ahmed Testing (3b2e1fad-bc5f-4322-84d2-a7440f78c5d7) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Ahmed jiminny (1dbd47b8-bbf8-4bbb-8e28-67b9c91f566e) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Testers Inc (ec0767d5-1248-4447-b316-94dd9a30d52b) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Copper Team (817c8ce1-8e22-4ac8-8fca-8df1131963ab) is not yet assigned an owner. skipping...
docker_lamp_1 | Team TheBestPlace Ever (dbb998f9-70eb-4f11-a9f2-d9f6157f4035) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Horen's apartments (e10bb4ea-6c89-4fe3-be3b-0a278aa81180) is not yet assigned an owner. skipping...
docker_lamp_1 | Team New Org Test (2cb527b6-73a4-46be-b7b2-b0097b494cc5) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Pipedrive test org (18ea22be-6e0b-461c-a4db-536c022aac73) is not yet assigned an owner. skipping...
docker_lamp_1 | Team BigChairs Inc. (16dcfaf9-44b4-4cc2-9ead-f98dd0cad4dd) is not yet assigned an owner. skipping...
docker_lamp_1 | Syncing objects for GL 500 (0c33bf2d-1c77-4200-8ed6-6147ad444c30) since 2026-02-19 13:26:04 (delay: 12s)
docker_lamp_1 | Team Loren X (243d7d4b-1849-46c2-9dfb-4462f52020ef) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Laravel Company 2024 (e466d657-c26d-4281-9ed5-73890fe711f6) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Barbara Fuchs (bea0fcf3-f8f9-471d-92c4-d1b7d1a2e228) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Test salesforce auto sync (2c2e652e-1cbb-4620-852d-e73bef0ab4a9) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Bullhorn (83c14120-cdb1-42e9-b0ac-16ef11320a8f) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Globo Tech (fb8d5211-3c4d-4804-9223-b091670ffd79) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Laravel 11 Company 2024 (780c6836-764b-4e47-9a05-cfefbab6e590) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Nikon7 (e9bff902-edc3-4b0b-89b1-2a9aa43d940a) is not yet assigned an owner. skipping...
docker_lamp_1 | Syncing objects for Dev Zoho CRM client (1ece66c8-feb1-4df1-b321-21607daf4623) since 2026-04-24 07:44:24 (delay: 14s)
docker_lamp_1 | [PASSWORD_DOTS] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:sync-objects > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-24 08:44:10 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:44:10 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] 28.98ms DONE
docker_lamp_1 | 2026-04-24 08:44:11 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:44:11 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] 14.05ms DONE
docker_lamp_1 | 2026-04-24 08:44:13 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:44:14 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] 1s DONE
docker_lamp_1 | 2026-04-24 08:44:15 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:44:15 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] 9.38ms DONE
docker_lamp_1 | 2026-04-24 08:44:17 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:44:18 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] 1s DONE
docker_lamp_1 | 2026-04-24 08:44:19 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:44:19 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] 13.24ms DONE
docker_lamp_1 | 2026-04-24 08:44:21 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:44:21 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] 13.53ms DONE
docker_lamp_1 | 2026-04-24 08:44:23 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:44:27 Jiminny\Jobs\Crm\SyncObjects [PASSWORD_DOTS] 3s DONE
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:45:02 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:03 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:04 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:05 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:06 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:07 Running ['artisan' activity:purge-stale] ....... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:purge-stale > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:08 Running ['artisan' mailbox:text-relay:sync] {
docker_lamp_1 | "error": "invalid_request",
docker_lamp_1 | "error_description": "Invalid impersonation \u0026quot;sub\u0026quot; field: @"
docker_lamp_1 | }
docker_lamp_1 | .... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:text-relay:sync > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:10 Running ['artisan' conference:pre-meeting-notification] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:pre-meeting-notification > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:11 Running ['artisan' conference:monitor:start] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:start > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:12 Running ['artisan' conference:monitor:end] ..... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:end > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:13 Running ['artisan' jiminny:fix-hubspot-tokens] . 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:fix-hubspot-tokens > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:15 Running ['artisan' conference:pre-meeting-reminder] in background 1.42ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' conference:pre-meeting-reminder > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-805efb160ee8d9da02e60364ace7970eb2b35f31" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-24 08:45:15 Running ['artisan' hubspot:journal-poll --start] in background 1.35ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' hubspot:journal-poll --start > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-e26d77f915d2c55fe91ca4148a230e32eaa1865e" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-24 08:45:15 Running ['artisan' datadog:report:processing-sla-activities] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' datadog:report:processing-sla-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:16 Running ['artisan' activity:sync --from='2026-04-24 08:29:00' --to='2026-04-24 08:45:00' --skipProviders='ringcentral' --skipProviders='avaya' --skipProviders='telus' --skipProviders='talkdesk'] 🚀 Starting HubSpot journal polling service...
docker_lamp_1 | 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:sync --from='2026-04-24 08:29:00' --to='2026-04-24 08:45:00' --skipProviders='ringcentral' --skipProviders='avaya' --skipProviders='telus' --skipProviders='talkdesk' > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:17 Running ['artisan' crm:bullhorn:ping --heartbeat] 0 social account(s) to be processed ...
docker_lamp_1 |
docker_lamp_1 | Done!
docker_lamp_1 | 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:bullhorn:ping --heartbeat > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:18 Running ['artisan' nudges:send --silent] ....... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' nudges:send --silent > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:45:20 Running ['artisan' jiminny:playlists:normalize-sort] 2026-04-24 08:45:20 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:45:20 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] 32.29ms DONE
docker_lamp_1 | 2026-04-24 08:45:20 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:playlists:normalize-sort > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-24 08:45:21 Jiminny\Jobs\Activity\SyncActivity ....... 727.17ms DONE
docker_lamp_1 | 2026-04-24 08:45:21 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:45:21 Jiminny\Notifications\Crm\UserAccountDisconnected RUNNING
docker_lamp_1 | 2026-04-24 08:45:21 Jiminny\Notifications\Crm\UserAccountDisconnected 73.84ms DONE
docker_lamp_1 | 2026-04-24 08:45:21 Jiminny\Jobs\Activity\SyncActivity ....... 421.75ms DONE
docker_lamp_1 | 2026-04-24 08:45:21 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:45:21 Jiminny\Jobs\Activity\SyncActivity ....... 409.07ms DONE
docker_lamp_1 | 2026-04-24 08:45:21 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:45:22 Jiminny\Jobs\Activity\SyncActivity ....... 406.30ms DONE
docker_lamp_1 | 2026-04-24 08:45:22 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:45:23 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] 1s DONE
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:46:01 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:46:02 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:46:03 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:46:05 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:46:06 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:46:07 Running ['artisan' conference:monitor:count] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:46:08 Running ['artisan' crm:sync-hubspot-objects] [HubSpot] Syncing objects for Hubspot (abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4) since 2026-04-24 08:41:09 (delay: 0s)
docker_lamp_1 | Team TestV (2708d27a-7f31-4d90-bd2b-b5bde1c0211e) is not yet assigned an owner. skipping...
docker_lamp_1 | Team KioskAccount (dedab245-604c-4cd2-a83e-4b9e034b2772) is not yet assigned an owner. skipping...
docker_lamp_1 | [HubSpot] Syncing objects for InsightSquared (b2b115eb-93ce-4d1b-929c-173757df8fba) since 2026-02-17 15:09:59 (delay: 0s)
docker_lamp_1 | Team Aircall Demo (7980e5eb-b11c-4cee-9c21-8bb29ba85f3b) is not yet assigned an owner. skipping...
docker_lamp_1 | [HubSpot] Syncing objects for GoStudent UAT (b2d49a54-b645-4637-a7ae-a86cfce6e8e4) since 2026-02-17 15:09:59 (delay: 1s)
docker_lamp_1 | [HubSpot] Syncing objects for JustCall (c6b9d6b0-b48d-4832-a68c-a57d60651888) since 2026-02-17 15:07:41 (delay: 1s)
docker_lamp_1 | Team Twilio Video (c334ca55-b230-411c-b10e-31c8204bd07b) is not yet assigned an owner. skipping...
docker_lamp_1 | Team My Test Account 3000 (dbc9990d-b35f-4e38-9550-22cdd6059514) is not yet assigned an owner. skipping...
docker_lamp_1 | Team test (7997eb70-8aa4-491a-870d-311977568df4) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Test (5e06dcee-0613-470e-9a77-2c283198f3bf) is not yet assigned an owner. skipping...
docker_lamp_1 | Team test ogg auto sync (da44776e-306f-427a-83d8-a1b4baa5537e) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Tourlaner (d9b71080-388b-4cf5-8175-aa0f29bee635) is not yet assigned an owner. skipping...
docker_lamp_1 | Dispatched 4 HubSpot sync jobs
docker_lamp_1 | 2026-04-24 08:46:09 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:sync-hubspot-objects > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:46:09 Running ['artisan' activity:notify-not-logged] 2026-04-24 08:46:10 Jiminny\Jobs\Crm\SyncHubspotObjects ...... 536.99ms DONE
docker_lamp_1 | 2026-04-24 08:46:10 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:46:10 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] 8.13ms DONE
docker_lamp_1 | 2026-04-24 08:46:10 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:46:10 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] 6.76ms DONE
docker_lamp_1 | 2026-04-24 08:46:11 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:46:11 Jiminny\Jobs\Crm\SyncHubspotObjects ....... 17.17ms DONE
docker_lamp_1 | . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:notify-not-logged > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:46:11 Running ['artisan' activity:status-count] {"canceled":11}...... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:status-count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:46:12 Running ['artisan' mailbox:sync] Queueing 2 inbox(es) for sync.
docker_lamp_1 | [PASSWORD_DOTS] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:sync > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-24 08:46:14 Jiminny\Jobs\Mailbox\SyncInbox [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:46:14 Jiminny\Jobs\Mailbox\SyncInbox [PASSWORD_DOTS] 45.38ms DONE
docker_lamp_1 | 2026-04-24 08:46:14 Jiminny\Jobs\Mailbox\SyncInbox [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:46:14 Jiminny\Jobs\Mailbox\SyncInbox [PASSWORD_DOTS] 29.29ms DONE
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:47:05 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:47:06 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:47:08 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:47:09 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:47:10 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:47:11 Running ['artisan' mailbox:batch:create] ....... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:create > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-24 08:47:14 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:47:14 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] 70.68ms DONE
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:48:01 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:48:03 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:48:04 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:48:05 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:48:06 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:48:07 Running ['artisan' conference:monitor:count] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:48:08 Running ['artisan' mailbox:batch:retry-failed --max-batches=15] in background 0.81ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' mailbox:batch:retry-failed --max-batches=15 > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-390defd641effba0f73a895e426ded4cf2ba7f11" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-24 08:48:08 Running ['artisan' crm:autolog-delayed] Dispatched autolog delayed jobs for all applicable teams:
docker_lamp_1 | [PASSWORD_DOTS] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:autolog-delayed > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:49:02 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:49:04 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:49:05 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:49:07 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:49:08 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:50:07 Running ['artisan' meeting-bot:schedule-bot] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:09 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:11 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:12 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:13 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:14 Running ['artisan' conference:monitor:count] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:16 Running ['artisan' activity:purge-stale] ....... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:purge-stale > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:17 Running ['artisan' mailbox:text-relay:sync] {
docker_lamp_1 | "error": "invalid_request",
docker_lamp_1 | "error_description": "Invalid impersonation \u0026quot;sub\u0026quot; field: @"
docker_lamp_1 | }
docker_lamp_1 | .... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:text-relay:sync > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:19 Running ['artisan' conference:pre-meeting-notification] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:pre-meeting-notification > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:22 Running ['artisan' conference:monitor:start] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:start > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:25 Running ['artisan' conference:monitor:end] ..... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:end > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:27 Running ['artisan' jiminny:fix-hubspot-tokens] . 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:fix-hubspot-tokens > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:29 Running ['artisan' conference:pre-meeting-reminder] in background 1.63ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' conference:pre-meeting-reminder > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-805efb160ee8d9da02e60364ace7970eb2b35f31" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-24 08:50:29 Running ['artisan' hubspot:journal-poll --start] in background 1.18ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' hubspot:journal-poll --start > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-e26d77f915d2c55fe91ca4148a230e32eaa1865e" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-24 08:50:29 Running ['artisan' jiminny:transcription:retry-failed] No failed transcriptions found.
docker_lamp_1 | 🚀 Starting HubSpot journal polling service...
docker_lamp_1 | 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:transcription:retry-failed > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:30 Running ['artisan' crm:reset-governor] [PASSWORD_DOTS] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:reset-governor > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:50:31 Running ['artisan' crm:bullhorn:ping --heartbeat] 0 social account(s) to be processed ...
docker_lamp_1 |
docker_lamp_1 | Done!
docker_lamp_1 | 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:bullhorn:ping --heartbeat > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-24 08:51:01 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:51:02 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:51:03 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:51:04 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:51:05 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-24 08:51:06 Running ['artisan' crm:sync-hubspot-objects] [HubSpot] Syncing objects for Hubspot (abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4) since 2026-04-24 08:46:09 (delay: 0s)
docker_lamp_1 | Team TestV (2708d27a-7f31-4d90-bd2b-b5bde1c0211e) is not yet assigned an owner. skipping...
docker_lamp_1 | Team KioskAccount (dedab245-604c-4cd2-a83e-4b9e034b2772) is not yet assigned an owner. skipping...
docker_lamp_1 | [HubSpot] Syncing objects for InsightSquared (b2b115eb-93ce-4d1b-929c-173757df8fba) since 2026-02-17 15:09:59 (delay: 0s)
docker_lamp_1 | Team Aircall Demo (7980e5eb-b11c-4cee-9c21-8bb29ba85f3b) is not yet assigned an owner. skipping...
docker_lamp_1 | [HubSpot] Syncing objects for GoStudent UAT (b2d49a54-b645-4637-a7ae-a86cfce6e8e4) since 2026-02-17 15:09:59 (delay: 1s)
docker_lamp_1 | [HubSpot] Syncing objects for JustCall (c6b9d6b0-b48d-4832-a68c-a57d60651888) since 2026-02-17 15:07:41 (delay: 1s)
docker_lamp_1 | Team Twilio Video (c334ca55-b230-411c-b10e-31c8204bd07b) is not yet assigned an owner. skipping...
docker_lamp_1 | Team My Test Account 3000 (dbc9990d-b35f-4e38-9550-22cdd6059514) is not yet assigned an owner. skipping...
docker_lamp_1 | Team test (7997eb70-8aa4-491a-870d-311977568df4) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Test (5e06dcee-0613-470e-9a77-2c283198f3bf) is not yet assigned an owner. skipping...
docker_lamp_1 | Team test ogg auto sync (da44776e-306f-427a-83d8-a1b4baa5537e) is not yet assigned an owner. skipping...
docker_lamp_1 | Team Tourlaner (d9b71080-388b-4cf5-8175-aa0f29bee635) is not yet assigned an owner. skipping...
docker_lamp_1 | Dispatched 4 HubSpot sync jobs
docker_lamp_1 | ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:sync-hubspot-objects > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-24 08:51:08 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-24 08:51:09 Jiminny\Jobs\Crm\SyncHubspotObjects ...... 616.09ms DONE
docker_lamp_1 | 2026-04-24 08:51:09 Jiminny\Jobs\Crm\SyncHubspotObjects [PASSWORD_DOTS] RUNNI...
|
iTerm2
|
DOCKER (docker-compose)
|
NULL
|
77042
|
|
Last login: Fri Apr 24 09:30:32 on ttys010
Poetry Last login: Fri Apr 24 09:30:32 on ttys010
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
77043
|
|
Last login: Thu Apr 23 14:01:29 on ttys009
Poetry Last login: Thu Apr 23 14:01:29 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/.screenpipe/data/data
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data $ cd 2026-04-23
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-23 $ ll
total 338296
drwxr-xr-x 106 lukas staff 3392 24 Apr 09:20 .
drwxr-xr-x 17 lukas staff 544 24 Apr 09:19 ..
-rw-r--r-- 1 lukas staff 174550 23 Apr 11:38 1776933481776_m1.jpg
-rw-r--r-- 1 lukas staff 1448572 23 Apr 09:24 compact_monitor_1_1776925466477.mp4
-rw-r--r-- 1 lukas staff 2157204 23 Apr 09:29 compact_monitor_1_1776925771961.mp4
-rw-r--r-- 1 lukas staff 785851 23 Apr 09:34 compact_monitor_1_1776926078542.mp4
-rw-r--r-- 1 lukas staff 319924 23 Apr 09:39 compact_monitor_1_1776926389122.mp4
-rw-r--r-- 1 lukas staff 178437 23 Apr 09:44 compact_monitor_1_1776926696343.mp4
-rw-r--r-- 1 lukas staff 182316 23 Apr 09:50 compact_monitor_1_1776927001989.mp4
-rw-r--r-- 1 lukas staff 475405 23 Apr 09:55 compact_monitor_1_1776927311821.mp4
-rw-r--r-- 1 lukas staff 3670216 23 Apr 10:00 compact_monitor_1_1776927616817.mp4
-rw-r--r-- 1 lukas staff 1311845 23 Apr 10:05 compact_monitor_1_1776927930717.mp4
-rw-r--r-- 1 lukas staff 1768745 23 Apr 10:10 compact_monitor_1_1776928242002.mp4
-rw-r--r-- 1 lukas staff 942473 23 Apr 10:15 compact_monitor_1_1776928549085.mp4
-rw-r--r-- 1 lukas staff 911130 23 Apr 10:20 compact_monitor_1_1776928854473.mp4
-rw-r--r-- 1 lukas staff 1249531 23 Apr 10:26 compact_monitor_1_1776929165912.mp4
-rw-r--r-- 1 lukas staff 2106654 23 Apr 10:31 compact_monitor_1_1776929476115.mp4
-rw-r--r-- 1 lukas staff 1633583 23 Apr 10:36 compact_monitor_1_1776929781778.mp4
-rw-r--r-- 1 lukas staff 1186578 23 Apr 10:41 compact_monitor_1_1776930087801.mp4
-rw-r--r-- 1 lukas staff 322993 23 Apr 10:46 compact_monitor_1_1776930392335.mp4
-rw-r--r-- 1 lukas staff 120434 23 Apr 10:51 compact_monitor_1_1776930696294.mp4
-rw-r--r-- 1 lukas staff 111489 23 Apr 10:56 compact_monitor_1_1776931004441.mp4
-rw-r--r-- 1 lukas staff 560588 23 Apr 11:01 compact_monitor_1_1776931314879.mp4
-rw-r--r-- 1 lukas staff 2146373 23 Apr 11:07 compact_monitor_1_1776931618003.mp4
-rw-r--r-- 1 lukas staff 1276021 23 Apr 11:12 compact_monitor_1_1776931930806.mp4
-rw-r--r-- 1 lukas staff 274120 23 Apr 11:17 compact_monitor_1_1776932235717.mp4
-rw-r--r-- 1 lukas staff 212162 23 Apr 11:22 compact_monitor_1_1776932541353.mp4
-rw-r--r-- 1 lukas staff 639071 23 Apr 11:27 compact_monitor_1_1776932847264.mp4
-rw-r--r-- 1 lukas staff 315645 23 Apr 11:32 compact_monitor_1_1776933174068.mp4
-rw-r--r-- 1 lukas staff 518635 23 Apr 11:38 compact_monitor_1_1776933492233.mp4
-rw-r--r-- 1 lukas staff 1886880 23 Apr 11:43 compact_monitor_1_1776933806263.mp4
-rw-r--r-- 1 lukas staff 2316900 23 Apr 11:48 compact_monitor_1_1776934133065.mp4
-rw-r--r-- 1 lukas staff 1589469 23 Apr 11:54 compact_monitor_1_1776934449640.mp4
-rw-r--r-- 1 lukas staff 592352 23 Apr 11:59 compact_monitor_1_1776934755385.mp4
-rw-r--r-- 1 lukas staff 1631938 23 Apr 12:04 compact_monitor_1_1776935058652.mp4
-rw-r--r-- 1 lukas staff 6099603 23 Apr 12:24 compact_monitor_1_1776936289062.mp4
-rw-r--r-- 1 lukas staff 91125 23 Apr 12:35 compact_monitor_1_1776936919782.mp4
-rw-r--r-- 1 lukas staff 2955581 23 Apr 12:40 compact_monitor_1_1776937224602.mp4
-rw-r--r-- 1 lukas staff 3002373 23 Apr 12:45 compact_monitor_1_1776937538337.mp4
-rw-r--r-- 1 lukas staff 3116117 23 Apr 12:50 compact_monitor_1_1776937842939.mp4
-rw-r--r-- 1 lukas staff 2426878 23 Apr 12:55 compact_monitor_1_1776938150380.mp4
-rw-r--r-- 1 lukas staff 2028056 23 Apr 13:01 compact_monitor_1_1776938459676.mp4
-rw-r--r-- 1 lukas staff 2104678 23 Apr 13:06 compact_monitor_1_1776938769006.mp4
-rw-r--r-- 1 lukas staff 3004512 23 Apr 13:11 compact_monitor_1_1776939078771.mp4
-rw-r--r-- 1 lukas staff 1643140 23 Apr 13:16 compact_monitor_1_1776939389326.mp4
-rw-r--r-- 1 lukas staff 1923058 23 Apr 13:21 compact_monitor_1_1776939706398.mp4
-rw-r--r-- 1 lukas staff 900757 23 Apr 13:26 compact_monitor_1_1776940011813.mp4
-rw-r--r-- 1 lukas staff 2964075 23 Apr 13:32 compact_monitor_1_1776940319106.mp4
-rw-r--r-- 1 lukas staff 2419466 23 Apr 13:37 compact_monitor_1_1776940628353.mp4
-rw-r--r-- 1 lukas staff 2447997 23 Apr 13:42 compact_monitor_1_1776940941730.mp4
-rw-r--r-- 1 lukas staff 2202220 23 Apr 13:47 compact_monitor_1_1776941248366.mp4
-rw-r--r-- 1 lukas staff 2309716 23 Apr 13:52 compact_monitor_1_1776941558220.mp4
-rw-r--r-- 1 lukas staff 2049791 23 Apr 13:57 compact_monitor_1_1776941868192.mp4
-rw-r--r-- 1 lukas staff 6097615 24 Apr 09:20 compact_monitor_1_1777011631828.mp4
-rw-r--r-- 1 lukas staff 215938 23 Apr 09:24 compact_monitor_2_1776925467316.mp4
-rw-r--r-- 1 lukas staff 3956084 23 Apr 09:29 compact_monitor_2_1776925774333.mp4
-rw-r--r-- 1 lukas staff 3998164 23 Apr 09:34 compact_monitor_2_1776926081685.mp4
-rw-r--r-- 1 lukas staff 2446471 23 Apr 09:39 compact_monitor_2_1776926391115.mp4
-rw-r--r-- 1 lukas staff 776043 23 Apr 09:44 compact_monitor_2_1776926697217.mp4
-rw-r--r-- 1 lukas staff 802594 23 Apr 09:50 compact_monitor_2_1776927003100.mp4
-rw-r--r-- 1 lukas staff 1453164 23 Apr 09:55 compact_monitor_2_1776927313533.mp4
-rw-r--r-- 1 lukas staff 1449750 23 Apr 10:00 compact_monitor_2_1776927621638.mp4
-rw-r--r-- 1 lukas staff 1635019 23 Apr 10:05 compact_monitor_2_1776927933130.mp4
-rw-r--r-- 1 lukas staff 595843 23 Apr 10:10 compact_monitor_2_1776928245303.mp4
-rw-r--r-- 1 lukas staff 531088 23 Apr 10:15 compact_monitor_2_1776928550520.mp4
-rw-r--r-- 1 lukas staff 846515 23 Apr 10:20 compact_monitor_2_1776928856922.mp4
-rw-r--r-- 1 lukas staff 904088 23 Apr 10:26 compact_monitor_2_1776929169922.mp4
-rw-r--r-- 1 lukas staff 786829 23 Apr 10:31 compact_monitor_2_1776929479675.mp4
-rw-r--r-- 1 lukas staff 729181 23 Apr 10:36 compact_monitor_2_1776929783409.mp4
-rw-r--r-- 1 lukas staff 1116843 23 Apr 10:41 compact_monitor_2_1776930090240.mp4
-rw-r--r-- 1 lukas staff 889822 23 Apr 10:46 compact_monitor_2_1776930393454.mp4
-rw-r--r-- 1 lukas staff 444250 23 Apr 10:51 compact_monitor_2_1776930697139.mp4
-rw-r--r-- 1 lukas staff 1024242 23 Apr 10:56 compact_monitor_2_1776931006436.mp4
-rw-r--r-- 1 lukas staff 1206096 23 Apr 11:01 compact_monitor_2_1776931316182.mp4
-rw-r--r-- 1 lukas staff 1249893 23 Apr 11:07 compact_monitor_2_1776931621999.mp4
-rw-r--r-- 1 lukas staff 401526 23 Apr 11:12 compact_monitor_2_1776931932870.mp4
-rw-r--r-- 1 lukas staff 982256 23 Apr 11:17 compact_monitor_2_1776932236802.mp4
-rw-r--r-- 1 lukas staff 1131582 23 Apr 11:22 compact_monitor_2_1776932542205.mp4
-rw-r--r-- 1 lukas staff 808822 23 Apr 11:27 compact_monitor_2_1776932849317.mp4
-rw-r--r-- 1 lukas staff 442538 23 Apr 11:32 compact_monitor_2_1776933176662.mp4
-rw-r--r-- 1 lukas staff 675274 23 Apr 11:38 compact_monitor_2_1776933495384.mp4
-rw-r--r-- 1 lukas staff 1534516 23 Apr 11:43 compact_monitor_2_1776933812317.mp4
-rw-r--r-- 1 lukas staff 1657590 23 Apr 11:49 compact_monitor_2_1776934138529.mp4
-rw-r--r-- 1 lukas staff 1222887 23 Apr 11:54 compact_monitor_2_1776934453154.mp4
-rw-r--r-- 1 lukas staff 1003999 23 Apr 11:59 compact_monitor_2_1776934756922.mp4
-rw-r--r-- 1 lukas staff 1168918 23 Apr 12:04 compact_monitor_2_1776935062292.mp4
-rw-r--r-- 1 lukas staff 5755378 23 Apr 12:25 compact_monitor_2_1776936297908.mp4
-rw-r--r-- 1 lukas staff 302577 23 Apr 12:25 compact_monitor_2_1776936305094.mp4
-rw-r--r-- 1 lukas staff 1710485 23 Apr 12:35 compact_monitor_2_1776936920837.mp4
-rw-r--r-- 1 lukas staff 2705135 23 Apr 12:40 compact_monitor_2_1776937228721.mp4
-rw-r--r-- 1 lukas staff 1751314 23 Apr 12:45 compact_monitor_2_1776937539934.mp4
-rw-r--r-- 1 lukas staff 924709 23 Apr 12:50 compact_monitor_2_1776937844858.mp4
-rw-r--r-- 1 lukas staff 1285623 23 Apr 12:55 compact_monitor_2_1776938151831.mp4
-rw-r--r-- 1 lukas staff 405857 23 Apr 13:01 compact_monitor_2_1776938461195.mp4
-rw-r--r-- 1 lukas staff 407926 23 Apr 13:06 compact_monitor_2_1776938770290.mp4
-rw-r--r-- 1 lukas staff 958635 23 Apr 13:11 compact_monitor_2_1776939080379.mp4
-rw-r--r-- 1 lukas staff 3622447 23 Apr 13:16 compact_monitor_2_1776939392822.mp4
-rw-r--r-- 1 lukas staff 1850262 23 Apr 13:21 compact_monitor_2_1776939708714.mp4
-rw-r--r-- 1 lukas staff 4725657 23 Apr 13:26 compact_monitor_2_1776940013773.mp4
-rw-r--r-- 1 lukas staff 3590913 23 Apr 13:32 compact_monitor_2_1776940321454.mp4
-rw-r--r-- 1 lukas staff 4073703 23 Apr 13:37 compact_monitor_2_1776940630759.mp4
-rw-r--r-- 1 lukas staff 6432165 23 Apr 13:42 compact_monitor_2_1776940943551.mp4
-rw-r--r-- 1 lukas staff 1484957 23 Apr 13:47 compact_monitor_2_1776941250256.mp4
-rw-r--r-- 1 lukas staff 1336470 23 Apr 13:52 compact_monitor_2_1776941561295.mp4
-rw-r--r-- 1 lukas staff 1327781 23 Apr 13:57 compact_monitor_2_1776941869906.mp4
-rw-r--r-- 1 lukas staff 4219671 24 Apr 09:20 compact_monitor_2_1777011640295.mp4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-23 $ cd 2026-04-23
cd: no such file or directory: 2026-04-23
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-23 $ ll
total 338296
drwxr-xr-x 106 lukas staff 3392 24 Apr 09:20 .
drwxr-xr-x 17 lukas staff 544 24 Apr 09:19 ..
-rw-r--r-- 1 lukas staff 174550 23 Apr 11:38 1776933481776_m1.jpg
-rw-r--r-- 1 lukas staff 1448572 23 Apr 09:24 compact_monitor_1_1776925466477.mp4
-rw-r--r-- 1 lukas staff 2157204 23 Apr 09:29 compact_monitor_1_1776925771961.mp4
-rw-r--r-- 1 lukas staff 785851 23 Apr 09:34 compact_monitor_1_1776926078542.mp4
-rw-r--r-- 1 lukas staff 319924 23 Apr 09:39 compact_monitor_1_1776926389122.mp4
-rw-r--r-- 1 lukas staff 178437 23 Apr 09:44 compact_monitor_1_1776926696343.mp4
-rw-r--r-- 1 lukas staff 182316 23 Apr 09:50 compact_monitor_1_1776927001989.mp4
-rw-r--r-- 1 lukas staff 475405 23 Apr 09:55 compact_monitor_1_1776927311821.mp4
-rw-r--r-- 1 lukas staff 3670216 23 Apr 10:00 compact_monitor_1_1776927616817.mp4
-rw-r--r-- 1 lukas staff 1311845 23 Apr 10:05 compact_monitor_1_1776927930717.mp4
-rw-r--r-- 1 lukas staff 1768745 23 Apr 10:10 compact_monitor_1_1776928242002.mp4
-rw-r--r-- 1 lukas staff 942473 23 Apr 10:15 compact_monitor_1_1776928549085.mp4
-rw-r--r-- 1 lukas staff 911130 23 Apr 10:20 compact_monitor_1_1776928854473.mp4
-rw-r--r-- 1 lukas staff 1249531 23 Apr 10:26 compact_monitor_1_1776929165912.mp4
-rw-r--r-- 1 lukas staff 2106654 23 Apr 10:31 compact_monitor_1_1776929476115.mp4
-rw-r--r-- 1 lukas staff 1633583 23 Apr 10:36 compact_monitor_1_1776929781778.mp4
-rw-r--r-- 1 lukas staff 1186578 23 Apr 10:41 compact_monitor_1_1776930087801.mp4
-rw-r--r-- 1 lukas staff 322993 23 Apr 10:46 compact_monitor_1_1776930392335.mp4
-rw-r--r-- 1 lukas staff 120434 23 Apr 10:51 compact_monitor_1_1776930696294.mp4
-rw-r--r-- 1 lukas staff 111489 23 Apr 10:56 compact_monitor_1_1776931004441.mp4
-rw-r--r-- 1 lukas staff 560588 23 Apr 11:01 compact_monitor_1_1776931314879.mp4
-rw-r--r-- 1 lukas staff 2146373 23 Apr 11:07 compact_monitor_1_1776931618003.mp4
-rw-r--r-- 1 lukas staff 1276021 23 Apr 11:12 compact_monitor_1_1776931930806.mp4
-rw-r--r-- 1 lukas staff 274120 23 Apr 11:17 compact_monitor_1_1776932235717.mp4
-rw-r--r-- 1 lukas staff 212162 23 Apr 11:22 compact_monitor_1_1776932541353.mp4
-rw-r--r-- 1 lukas staff 639071 23 Apr 11:27 compact_monitor_1_1776932847264.mp4
-rw-r--r-- 1 lukas staff 315645 23 Apr 11:32 compact_monitor_1_1776933174068.mp4
-rw-r--r-- 1 lukas staff 518635 23 Apr 11:38 compact_monitor_1_1776933492233.mp4
-rw-r--r-- 1 lukas staff 1886880 23 Apr 11:43 compact_monitor_1_1776933806263.mp4
-rw-r--r-- 1 lukas staff 2316900 23 Apr 11:48 compact_monitor_1_1776934133065.mp4
-rw-r--r-- 1 lukas staff 1589469 23 Apr 11:54 compact_monitor_1_1776934449640.mp4
-rw-r--r-- 1 lukas staff 592352 23 Apr 11:59 compact_monitor_1_1776934755385.mp4
-rw-r--r-- 1 lukas staff 1631938 23 Apr 12:04 compact_monitor_1_1776935058652.mp4
-rw-r--r-- 1 lukas staff 6099603 23 Apr 12:24 compact_monitor_1_1776936289062.mp4
-rw-r--r-- 1 lukas staff 91125 23 Apr 12:35 compact_monitor_1_1776936919782.mp4
-rw-r--r-- 1 lukas staff 2955581 23 Apr 12:40 compact_monitor_1_1776937224602.mp4
-rw-r--r-- 1 lukas staff 3002373 23 Apr 12:45 compact_monitor_1_1776937538337.mp4
-rw-r--r-- 1 lukas staff 3116117 23 Apr 12:50 compact_monitor_1_1776937842939.mp4
-rw-r--r-- 1 lukas staff 2426878 23 Apr 12:55 compact_monitor_1_1776938150380.mp4
-rw-r--r-- 1 lukas staff 2028056 23 Apr 13:01 compact_monitor_1_1776938459676.mp4
-rw-r--r-- 1 lukas staff 2104678 23 Apr 13:06 compact_monitor_1_1776938769006.mp4
-rw-r--r-- 1 lukas staff 3004512 23 Apr 13:11 compact_monitor_1_1776939078771.mp4
-rw-r--r-- 1 lukas staff 1643140 23 Apr 13:16 compact_monitor_1_1776939389326.mp4
-rw-r--r-- 1 lukas staff 1923058 23 Apr 13:21 compact_monitor_1_1776939706398.mp4
-rw-r--r-- 1 lukas staff 900757 23 Apr 13:26 compact_monitor_1_1776940011813.mp4
-rw-r--r-- 1 lukas staff 2964075 23 Apr 13:32 compact_monitor_1_1776940319106.mp4
-rw-r--r-- 1 lukas staff 2419466 23 Apr 13:37 compact_monitor_1_1776940628353.mp4
-rw-r--r-- 1 lukas staff 2447997 23 Apr 13:42 compact_monitor_1_1776940941730.mp4
-rw-r--r-- 1 lukas staff 2202220 23 Apr 13:47 compact_monitor_1_1776941248366.mp4
-rw-r--r-- 1 lukas staff 2309716 23 Apr 13:52 compact_monitor_1_1776941558220.mp4
-rw-r--r-- 1 lukas staff 2049791 23 Apr 13:57 compact_monitor_1_1776941868192.mp4
-rw-r--r-- 1 lukas staff 6097615 24 Apr 09:20 compact_monitor_1_1777011631828.mp4
-rw-r--r-- 1 lukas staff 215938 23 Apr 09:24 compact_monitor_2_1776925467316.mp4
-rw-r--r-- 1 lukas staff 3956084 23 Apr 09:29 compact_monitor_2_1776925774333.mp4
-rw-r--r-- 1 lukas staff 3998164 23 Apr 09:34 compact_monitor_2_1776926081685.mp4
-rw-r--r-- 1 lukas staff 2446471 23 Apr 09:39 compact_monitor_2_1776926391115.mp4
-rw-r--r-- 1 lukas staff 776043 23 Apr 09:44 compact_monitor_2_1776926697217.mp4
-rw-r--r-- 1 lukas staff 802594 23 Apr 09:50 compact_monitor_2_1776927003100.mp4
-rw-r--r-- 1 lukas staff 1453164 23 Apr 09:55 compact_monitor_2_1776927313533.mp4
-rw-r--r-- 1 lukas staff 1449750 23 Apr 10:00 compact_monitor_2_1776927621638.mp4
-rw-r--r-- 1 lukas staff 1635019 23 Apr 10:05 compact_monitor_2_1776927933130.mp4
-rw-r--r-- 1 lukas staff 595843 23 Apr 10:10 compact_monitor_2_1776928245303.mp4
-rw-r--r-- 1 lukas staff 531088 23 Apr 10:15 compact_monitor_2_1776928550520.mp4
-rw-r--r-- 1 lukas staff 846515 23 Apr 10:20 compact_monitor_2_1776928856922.mp4
-rw-r--r-- 1 lukas staff 904088 23 Apr 10:26 compact_monitor_2_1776929169922.mp4
-rw-r--r-- 1 lukas staff 786829 23 Apr 10:31 compact_monitor_2_1776929479675.mp4
-rw-r--r-- 1 lukas staff 729181 23 Apr 10:36 compact_monitor_2_1776929783409.mp4
-rw-r--r-- 1 lukas staff 1116843 23 Apr 10:41 compact_monitor_2_1776930090240.mp4
-rw-r--r-- 1 lukas staff 889822 23 Apr 10:46 compact_monitor_2_1776930393454.mp4
-rw-r--r-- 1 lukas staff 444250 23 Apr 10:51 compact_monitor_2_1776930697139.mp4
-rw-r--r-- 1 lukas staff 1024242 23 Apr 10:56 compact_monitor_2_1776931006436.mp4
-rw-r--r-- 1 lukas staff 1206096 23 Apr 11:01 compact_monitor_2_1776931316182.mp4
-rw-r--r-- 1 lukas staff 1249893 23 Apr 11:07 compact_monitor_2_1776931621999.mp4
-rw-r--r-- 1 lukas staff 401526 23 Apr 11:12 compact_monitor_2_1776931932870.mp4
-rw-r--r-- 1 lukas staff 982256 23 Apr 11:17 compact_monitor_2_1776932236802.mp4
-rw-r--r-- 1 lukas staff 1131582 23 Apr 11:22 compact_monitor_2_1776932542205.mp4
-rw-r--r-- 1 lukas staff 808822 23 Apr 11:27 compact_monitor_2_1776932849317.mp4
-rw-r--r-- 1 lukas staff 442538 23 Apr 11:32 compact_monitor_2_1776933176662.mp4
-rw-r--r-- 1 lukas staff 675274 23 Apr 11:38 compact_monitor_2_1776933495384.mp4
-rw-r--r-- 1 lukas staff 1534516 23 Apr 11:43 compact_monitor_2_1776933812317.mp4
-rw-r--r-- 1 lukas staff 1657590 23 Apr 11:49 compact_monitor_2_1776934138529.mp4
-rw-r--r-- 1 lukas staff 1222887 23 Apr 11:54 compact_monitor_2_1776934453154.mp4
-rw-r--r-- 1 lukas staff 1003999 23 Apr 11:59 compact_monitor_2_1776934756922.mp4
-rw-r--r-- 1 lukas staff 1168918 23 Apr 12:04 compact_monitor_2_1776935062292.mp4
-rw-r--r-- 1 lukas staff 5755378 23 Apr 12:25 compact_monitor_2_1776936297908.mp4
-rw-r--r-- 1 lukas staff 302577 23 Apr 12:25 compact_monitor_2_1776936305094.mp4
-rw-r--r-- 1 lukas staff 1710485 23 Apr 12:35 compact_monitor_2_1776936920837.mp4
-rw-r--r-- 1 lukas staff 2705135 23 Apr 12:40 compact_monitor_2_1776937228721.mp4
-rw-r--r-- 1 lukas staff 1751314 23 Apr 12:45 compact_monitor_2_1776937539934.mp4
-rw-r--r-- 1 lukas staff 924709 23 Apr 12:50 compact_monitor_2_1776937844858.mp4
-rw-r--r-- 1 lukas staff 1285623 23 Apr 12:55 compact_monitor_2_1776938151831.mp4
-rw-r--r-- 1 lukas staff 405857 23 Apr 13:01 compact_monitor_2_1776938461195.mp4
-rw-r--r-- 1 lukas staff 407926 23 Apr 13:06 compact_monitor_2_1776938770290.mp4
-rw-r--r-- 1 lukas staff 958635 23 Apr 13:11 compact_monitor_2_1776939080379.mp4
-rw-r--r-- 1 lukas staff 3622447 23 Apr 13:16 compact_monitor_2_1776939392822.mp4
-rw-r--r-- 1 lukas staff 1850262 23 Apr 13:21 compact_monitor_2_1776939708714.mp4
-rw-r--r-- 1 lukas staff 4725657 23 Apr 13:26 compact_monitor_2_1776940013773.mp4
-rw-r--r-- 1 lukas staff 3590913 23 Apr 13:32 compact_monitor_2_1776940321454.mp4
-rw-r--r-- 1 lukas staff 4073703 23 Apr 13:37 compact_monitor_2_1776940630759.mp4
-rw-r--r-- 1 lukas staff 6432165 23 Apr 13:42 compact_monitor_2_1776940943551.mp4
-rw-r--r-- 1 lukas staff 1484957 23 Apr 13:47 compact_monitor_2_1776941250256.mp4
-rw-r--r-- 1 lukas staff 1336470 23 Apr 13:52 compact_monitor_2_1776941561295.mp4
-rw-r--r-- 1 lukas staff 1327781 23 Apr 13:57 compact_monitor_2_1776941869906.mp4
-rw-r--r-- 1 lukas staff 4219671 24 Apr 09:20 compact_monitor_2_1777011640295.mp4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-23 $ ~/.screenpipe/screenpipe_sync.sh 2026-04-23
[2026-04-24 09:31:53] ========================================
[2026-04-24 09:31:53] Screenpipe sync starting for: 2026-04-23
[2026-04-24 09:31:53] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (6.8G)
[2026-04-24 09:31:53] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-23 $ ~/.screenpipe/screenpipe_sync.sh 2026-04-23
[2026-04-24 09:32:09] ========================================
[2026-04-24 09:32:09] Screenpipe sync starting for: 2026-04-23
[2026-04-24 09:32:09] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (6.8G)
NAS mount: OK /Volumes/Test/screenpipe
Archive DB: exists (5.8G)
Data dir: OK (104 files, 165M)
[+00m01s] ▶ Counting source rows for 2026-04-23
frames: 2564
elements: 208937
ui_events: 3546
ocr_text: 904
meetings: 2
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m01s
creating indexes ✓ 0m00s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-04-23
video_chunks ✓ 0m01s
frames (2564 rows) ✓ 0m27s
ocr_text (904 rows) ✓ 0m14s
ui_events (3546 rows) ✓ 0m01s
elements (208937 rows) ✓ 0m27s
meetings (2 rows) ✓ 0m00s
[+01m12s] ▶ Updating FTS indexes
elements_fts ✓ 0m49s
frames_fts ✓ 1m14s
ui_events_fts ✓ 0m03s
[+03m18s] ▶ Verifying DB
frames: 2564 / 2564 ✓
elements: 208937 / 208937 ✓
ui_events: 3546 / 3546 ✓
ocr_text: 904 / 904 ✓
meetings: 2 / 2 ✓
[+04m31s] ▶ Copying data folder for 2026-04-23
rsync 2026-04-23/ → NAS ✓ 0m12s (104 files, 164M)
[2026-04-24 09:36:52] Archive DB size: 6.0G
[2026-04-24 09:36:52] Total time: 4m43s
[2026-04-24 09:36:52] Sync complete for 2026-04-23
[2026-04-24 09:36:52] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-23 $
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
77044
|
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-22 12:21:40
Now: 0
From old: 2026-04-15 00:00:00
To old: 2026-04-21 23:59:59
From new: 2026-04-12 00:00:00
To new: 2026-04-18 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-22 12:22:16
Now: 0
From old: 2026-03-22 00:00:00
To old: 2026-04-21 23:59:59
From new: 2026-03-01 00:00:00
To new: 2026-03-31 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-22 12:22:32
Now: 0
From old: 2026-01-22 00:00:00
To old: 2026-04-21 23:59:59
From new: 2026-01-01 00:00:00
To new: 2026-03-31 23:59:59
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]
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
iTerm2
|
DEV (docker)
|
NULL
|
77045
|
|
root@docker_lamp_1:/home/jiminny# php artisan jimi root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-22 12:21:40
Now: 0
From old: 2026-04-15 00:00:00
To old: 2026-04-21 23:59:59
From new: 2026-04-12 00:00:00
To new: 2026-04-18 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-22 12:22:16
Now: 0
From old: 2026-03-22 00:00:00
To old: 2026-04-21 23:59:59
From new: 2026-03-01 00:00:00
To new: 2026-03-31 23:59:59
root@docker_lamp_1:/home/jiminny# php artisan jiminny:debug
Now: 2026-04-22 12:22:32
Now: 0
From old: 2026-01-22 00:00:00
To old: 2026-04-21 23:59:59
From new: 2026-01-01 00:00:00
To new: 2026-03-31 23:59:59
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]
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
iTerm2
|
DEV (docker)
|
NULL
|
77046
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEvent.php
|
NULL
|
77047
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEvent.php
|
NULL
|
77048
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Nudges\UserPilot;
use GuzzleHttp\Exception\GuzzleException;
use Jiminny\Events\Nudges\NudgeCreated;
use Jiminny\Listeners\Activities\UserPilotActivityListener;
use Jiminny\Models\Nudge;
class CreateNudgeCreatedEvent extends UserPilotActivityListener
{
/**
* Handle the event.
*/
public function handle(NudgeCreated $event): void
{
// Don't attempt to run this on environments with UserPilot not configured.
if (config('services.userpilot.token') === null) {
return;
}
try {
/** @var Nudge $nudge */
$nudge = Nudge::idOrUuId($event->nudgeId);
$this->userPilotService->track(
$nudge->getActivitySearch()->getUser(),
'nudge-created',
);
} catch (GuzzleException $e) {
// Retry later.
$this->release(3600);
}
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class...
|
PhpStorm
|
faVsco.js – CreateNudgeCreatedEvent.php
|
NULL
|
77049
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Built-in Preview
Chrome
Firefox
Safari
Sync Changes
Hide This Notification
Code changed:
Hide
<?php
return [
'authy' => [
'secret' => env('AUTHY_SECRET'),
],
'github' => [
'token' => env('GITHUB_TOKEN'),
],
/*
|--------------------------------------------------------------------------
| Third Party Services
|--------------------------------------------------------------------------
|
| This file is for storing the credentials for third party services such
| as Mailgun, Postmark, AWS and more. This file provides the de facto
| location for this type of information, allowing packages to have
| a conventional file to locate the various service credentials.
|
*/
'mailgun' => [
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
'scheme' => 'https',
],
'postmark' => [
'token' => env('POSTMARK_TOKEN'),
'recipient_override' => env('POSTMARK_RECIPIENT_OVERRIDE'),
],
'ses' => [
'key' => env('SES_ACCESS_KEY', env('AWS_ACCESS_KEY_ID')),
'secret' => env('SES_SECRET_KEY', env('AWS_SECRET_ACCESS_KEY')),
'region' => env('SES_REGION', env('AWS_DEFAULT_REGION', 'us-east-1')),
],
'salesforce' => [
'clientId' => env('SALESFORCE_KEY'),
'clientSecret' => env('SALESFORCE_SECRET'),
'redirectUri' => env('SALESFORCE_REDIRECT_URI'),
'scope' => env('SALESFORCE_SCOPE'),
],
'hubspot' => [
'clientId' => env('HUBSPOT_KEY'),
'clientSecret' => env('HUBSPOT_SECRET'),
'redirectUri' => env('HUBSPOT_REDIRECT_URI'),
'scope' => env('HUBSPOT_SCOPE'),
'app' => env('HUBSPOT_APP_ID'),
'webhook_forward_urls' => array_filter(
explode(',', env('HUBSPOT_WEBHOOK_FORWARD_URLS', ''))
),
'journalScope' => env('HUBSPOT_JOURNAL_SCOPE'),
],
'pipedrive' => [
'clientId' => env('PIPEDRIVE_KEY'),
'clientSecret' => env('PIPEDRIVE_SECRET'),
'redirectUri' => env('PIPEDRIVE_REDIRECT_URI'),
'redirectUrl' => env('PIPEDRIVE_REDIRECT_URI'), // Needed for the SDK.
'scope' => env('PIPEDRIVE_SCOPE'),
],
'salesloft' => [
'clientId' => env('SALESLOFT_KEY'),
'clientSecret' => env('SALESLOFT_SECRET'),
'redirectUri' => env('SALESLOFT_REDIRECT_URI'),
'scope' => env('SALESLOFT_SCOPE'),
],
'linkedin' => [
'clientId' => env('LINKEDIN_KEY'),
'clientSecret' => env('LINKEDIN_SECRET'),
'redirectUri' => env('LINKEDIN_REDIRECT_URI'),
'scope' => env('LINKEDIN_SCOPE'),
],
'linkedin-conference' => [
'clientId' => env('LINKEDIN_CONFERENCE_KEY'),
'clientSecret' => env('LINKEDIN_CONFERENCE_SECRET'),
'redirectUri' => env('LINKEDIN_CONFERENCE_REDIRECT_URI'),
'scope' => env('LINKEDIN_CONFERENCE_SCOPE'),
],
'slack' => [
'clientId' => env('SLACK_KEY'),
'clientSecret' => env('SLACK_SECRET'),
'redirectUri' => env('SLACK_REDIRECT_URI'),
'scope' => env('SLACK_SCOPE'),
'verificationToken' => env('SLACK_VERIFICATION_TOKEN'),
'appId' => env('SLACK_APP_ID'),
],
'google' => [
'clientId' => env('GOOGLE_KEY'),
'clientSecret' => env('GOOGLE_SECRET'),
'redirectUri' => env('GOOGLE_REDIRECT_URI'),
'scope' => env('GOOGLE_SCOPE'),
'mapKey' => env('GOOGLE_MAP_KEY'),
],
'office' => [
'clientId' => env('MICROSOFT_OFFICE_KEY'),
'clientSecret' => env('MICROSOFT_OFFICE_SECRET'),
'redirectUri' => env('MICROSOFT_OFFICE_REDIRECT_URI'),
'scope' => env('MICROSOFT_OFFICE_SCOPE'),
],
'twilio' => [
'masterSid' => env('TWILIO_ACCOUNT_SID'),
'masterKey' => env('TWILIO_AUTH_TOKEN'),
'messagingServiceSid' => env('TWILIO_MESSAGING_SERVICE_ID'),
],
'pusher' => [
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app' => env('PUSHER_APP_ID'),
'cluster' => env('PUSHER_APP_CLUSTER'),
],
'intercom' => [
'access_token' => env('INTERCOM_TOKEN'),
'token' => env('INTERCOM_TOKEN'),
],
'circleci' => [
'token' => env('CIRCLECI_TOKEN'),
],
'planhat' => [
'enabled' => env('PLANHAT_ENABLED', false),
'jiminnyJWT' => env('PLANHAT_JIMINNY_JWT'),
'tenantUuid' => env('PLANHAT_TENANT_UUID'),
'apiRoute' => 'https://api-eu3.planhat.com/',
'analyticsApiRoute' => 'https://analytics.planhat.com/',
],
'outreach' => [
'clientId' => env('OUTREACH_APP_ID'),
'clientSecret' => env('OUTREACH_SECRET'),
'redirectUri' => env('OUTREACH_REDIRECT_URI'),
'scope' => env('OUTREACH_SCOPE'),
],
'zoom-phone' => [
'clientId' => env('ZOOM_PHONE_APP_ID'),
'clientSecret' => env('ZOOM_PHONE_SECRET'),
'redirectUri' => env('ZOOM_PHONE_REDIRECT_URI'),
'scope' => env('ZOOM_PHONE_SCOPE'),
'secretToken' => env('ZOOM_PHONE_SECRET_TOKEN'),
],
// fallback to zoom-bot
'zoom-bot' => [
'clientId' => env('ZOOM_BOT_APP_ID'),
'clientSecret' => env('ZOOM_BOT_SECRET'),
'webhookSecret' => env('ZOOM_BOT_SECRET_TOKEN'),
'redirectUri' => env('ZOOM_BOT_REDIRECT_URI'),
'scope' => env('ZOOM_BOT_SCOPE'),
],
'ms-teams' => [
'complianceBotHost' => env('TEAMS_COMPLIANCE_BOT_HOST'),
'complianceBotSecret' => env('TEAMS_COMPLIANCE_BOT_SECRET'),
],
'aircall' => [
'clientId' => env('AIRCALL_KEY'),
'clientSecret' => env('AIRCALL_SECRET'),
'redirectUri' => env('AIRCALL_REDIRECT_URI'),
'scope' => env('AIRCALL_SCOPE'),
'verificationToken' => env('AIRCALL_VERIFICATION_TOKEN'),
],
'bullhorn' => [
'clientId' => env('BULLHORN_CLIENT_ID'),
'clientSecret' => env('BULLHORN_SECRET'),
'redirectUri' => env('BULLHORN_REDIRECT_URI'),
'scope' => env('BULLHORN_SCOPE'),
'sessionTtl' => env('BULLHORN_SESSION_TTL'),
'heartbeatInterval' => env('BULLHORN_HEARTBEAT_INTERVAL'),
'retryDelays' => env('BULLHORN_RETRY_DELAYS'),
'queueDelays' => env('BULLHORN_QUEUE_DELAYS'),
],
'ringcentral' => [
'clientId' => env('RINGCENTRAL_KEY'),
'clientSecret' => env('RINGCENTRAL_SECRET'),
'redirectUri' => env('RINGCENTRAL_REDIRECT_URI'),
'scope' => env('RINGCENTRAL_SCOPE'),
'devMode' => env('APP_ENV') !== 'production',
],
// Avaya by RingCentral, accessible via the same API
'avaya' => [
'clientId' => env('RINGCENTRAL_KEY'),
'clientSecret' => env('RINGCENTRAL_SECRET'),
'redirectUri' => env('AVAYA_REDIRECT_URI'),
'scope' => env('RINGCENTRAL_SCOPE'),
'devMode' => env('APP_ENV') !== 'production',
],
'telus' => [
'clientId' => env('RINGCENTRAL_KEY'),
'clientSecret' => env('RINGCENTRAL_SECRET'),
'redirectUri' => env('TELUS_REDIRECT_URI'),
'scope' => env('RINGCENTRAL_SCOPE'),
'devMode' => env('APP_ENV') !== 'production',
],
'dialpad' => [
'clientId' => env('DIALPAD_KEY'),
'clientSecret' => env('DIALPAD_SECRET'),
'redirectUri' => env('DIALPAD_REDIRECT_URI'),
'scope' => env('DIALPAD_SCOPE'),
'isSandbox' => env('APP_ENV') !== 'production',
'secret' => env('DIALPAD_VERIFICATION_TOKEN'),
],
'talkdesk' => [
'clientId' => env('TALKDESK_APP_ID'),
'clientSecret' => env('TALKDESK_SECRET'),
'redirectUri' => env('TALKDESK_REDIRECT_URI'),
'scope' => env('TALKDESK_SCOPE'),
'subdomain' => env('TALKDESK_SUBDOMAIN'),
'region' => env('TALKDESK_REGION'),
],
'live-feed' => [
'items' => env('LIVE_FEED_ENABLED_ITEMS', ''),
],
'assembly-ai' => [
'base_url' => env('AI_PROVIDER_ASSEMBLYAI_BASEURL'),
'bearer_token' => env('TRANSCRIPTION_PROVIDER_ASSEMBLYAI_TOKEN'),
],
'userpilot' => [
'key' => env('USERPILOT_KEY', ''),
'token' => env('USERPILOT_TOKEN', ''),
],
'recall-ai' => [
'apiUrl' => env('RECALL_AI_API_URL', ''),
'apiKey' => env('RECALL_AI_API_KEY', ''),
'webhookSecret' => env('RECALL_AI_WEBHOOK_SECRET', ''),
'zoomOauthAppId' => env('RECALL_AI_ZOOM_BOT_APP_ID', ''),
'zoomRegisteredEmail' => env('RECALL_AI_ZOOM_REGISTERED_EMAIL', ''),
],
'internal_webhook' => [
'secret' => env('INTERNAL_WEBHOOK_SECRET', ''),
],
];
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class
SetupLayouts.php, class
SyncAccount.php, class
SyncContact.php, class
SyncFieldMetadata.php, class
SyncHubspotActiveDeals.php, class
SyncHubspotObjects.php, class
SyncLead.php, class
SyncObjects.php, class
SyncOpportunitiesMissingFieldDataCommand.php, class
SyncOpportunity.php, class
SyncProfileMetadata.php, class
SyncTeamMetadata.php, class
UpdateOpportunitySpecifications.php, class
DealInsights, folder
Dev, folder
Dialers, folder
DTOs, folder
Elasticsearch, folder
EngagementStats, folder
GeckoExport, folder
Livestream, folder
Mailboxes, folder
Migrate, folder
PlaybackThemes, folder
Playbooks, folder
Playlists, folder
Postmark, folder
ProphetAi, folder
Reports, folder
AutomatedReportsCommand.php, class
AutomatedReportsRetentionPolicyCommand.php, class
AutomatedReportsSendCommand.php, class
CreateMockAskJiminnyReportResultCommand.php, class
DeleteReportCommand.php, class
GenerateMarketingReport.php, class
Team.php, class
Usage.php, class
Slack, folder
Teams, folder
Tracks, folder
Transcription, folder
Twilio, folder
Users, folder
Vocabulary, folder
Zoom, folder
CoachingFeedbacksUpdateEsActivities.php, class
Command.php, class
CreateDatabaseUsers.php, class
DatabaseTableCount.php, class
DeleteOldAiCrmNotesCommand.php, class
DeleteS3LeftoversCommand.php, class
DevPostmanCommand.php, final class
DiarizeViaAiParticipantIdentificationCommand.php, class
EncryptTokensCommand.php, class
EngagementStatsRegenerateCommand.php, class
FeatureFlagsHelper.php
FixCrossTenantIssues.php, class
FlushRolesPermissionsCache.php, class
GenerateInternalWebhookToken.php, class
GroupSetDefaultLanguageCommand.php, final class
HelperTruncateCoachingTables.php, class
HubspotJournalPollingCommand.php, class
HubspotWebhookServiceCommand.php, class
ImportRecording.php, class
ImportUsersFromCsvFile.php, final class
IterateUsersCommand.php, abstract class
JiminnyCacheClearCommand.php, class
JiminnyDebugCommand.php, class
JiminnySetEncryptedTokenManagerModeCommand.php, class
JiminnyTokenInfoCommand.php, class
MakeSlackLiveCoachingChatNotesOn.php, class
ManageScimForTeam.php, class
MarkBranchForEnvironmentPipelineCommand.php, class
MuteOrganizerChannel.php, class
PhpApm.php, class
PropagateCoachingFeedbackCreatedAtToSectionFeedbacks.php, class
PurgeConferences.php, class
PurgeSoftDeletedOpportunitiesCommand.php, class
PurgeSyncBatchesCommand.php, class
RecalculateDealRisksCommand.php, class
RemoveDeleteMarkersCommand.php, class
RemoveExpiredNudgesCommand.php, class
RemoveUnusedParticipantSpeechesCommand.php, class
ResetElasticSearch.php, class
RestoreActivityCrmProviderIdCommand.php, class
RestoreActivityTypeCommand.php, class
SeedActivities.php, class
SyncActivity.php, class
TrackImported.php, class
UpdateActivitiesAverageScoreExcludingFeedbacksNotSetVisibleToAll.php, class
WhichWorkerIsWorkingOnWhichJob.php, class
Scheduling, folder
Kernel.php, class
Contracts, folder
Domain, folder
DTO, folder
Emails, folder
Enums, folder
Events, folder
Activities, folder
ActivityProvider, folder
AiAutomation, folder
Audio, folder
Bots, folder
Coaching, folder
Conferences, folder
Connections, folder
Crm, folder
ActivityCancelled.php, class
ActivityCancelledAsNoShow.php, class
ActivityLeadConverted.php, class
ActivityLinkedToCrm.php, class
ActivityLogged.php, class
ActivityScheduled.php, class
AutoLogActivity.php, class
EmailWithCRMObjectsProcessed.php, class
FollowupScheduled.php, class
LeadConverted.php, class
StageChanged.php, class
Dialers, folder
Messages, folder
Participants, folder
Provider, folder
Sessions, folder...
|
PhpStorm
|
faVsco.js – services.php
|
NULL
|
77050
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Built-in Preview
Chrome
Firefox
Safari
Sync Changes
Hide This Notification
Code changed:
Hide
33
Previous Highlighted Error
Next Highlighted Error
<?php
return [
'authy' => [
'secret' => env('AUTHY_SECRET'),
],
'github' => [
'token' => env('GITHUB_TOKEN'),
],
/*
|--------------------------------------------------------------------------
| Third Party Services
|--------------------------------------------------------------------------
|
| This file is for storing the credentials for third party services such
| as Mailgun, Postmark, AWS and more. This file provides the de facto
| location for this type of information, allowing packages to have
| a conventional file to locate the various service credentials.
|
*/
'mailgun' => [
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
'scheme' => 'https',
],
'postmark' => [
'token' => env('POSTMARK_TOKEN'),
'recipient_override' => env('POSTMARK_RECIPIENT_OVERRIDE'),
],
'ses' => [
'key' => env('SES_ACCESS_KEY', env('AWS_ACCESS_KEY_ID')),
'secret' => env('SES_SECRET_KEY', env('AWS_SECRET_ACCESS_KEY')),
'region' => env('SES_REGION', env('AWS_DEFAULT_REGION', 'us-east-1')),
],
'salesforce' => [
'clientId' => env('SALESFORCE_KEY'),
'clientSecret' => env('SALESFORCE_SECRET'),
'redirectUri' => env('SALESFORCE_REDIRECT_URI'),
'scope' => env('SALESFORCE_SCOPE'),
],
'hubspot' => [
'clientId' => env('HUBSPOT_KEY'),
'clientSecret' => env('HUBSPOT_SECRET'),
'redirectUri' => env('HUBSPOT_REDIRECT_URI'),
'scope' => env('HUBSPOT_SCOPE'),
'app' => env('HUBSPOT_APP_ID'),
'webhook_forward_urls' => array_filter(
explode(',', env('HUBSPOT_WEBHOOK_FORWARD_URLS', ''))
),
'journalScope' => env('HUBSPOT_JOURNAL_SCOPE'),
],
'pipedrive' => [
'clientId' => env('PIPEDRIVE_KEY'),
'clientSecret' => env('PIPEDRIVE_SECRET'),
'redirectUri' => env('PIPEDRIVE_REDIRECT_URI'),
'redirectUrl' => env('PIPEDRIVE_REDIRECT_URI'), // Needed for the SDK.
'scope' => env('PIPEDRIVE_SCOPE'),
],
'salesloft' => [
'clientId' => env('SALESLOFT_KEY'),
'clientSecret' => env('SALESLOFT_SECRET'),
'redirectUri' => env('SALESLOFT_REDIRECT_URI'),
'scope' => env('SALESLOFT_SCOPE'),
],
'linkedin' => [
'clientId' => env('LINKEDIN_KEY'),
'clientSecret' => env('LINKEDIN_SECRET'),
'redirectUri' => env('LINKEDIN_REDIRECT_URI'),
'scope' => env('LINKEDIN_SCOPE'),
],
'linkedin-conference' => [
'clientId' => env('LINKEDIN_CONFERENCE_KEY'),
'clientSecret' => env('LINKEDIN_CONFERENCE_SECRET'),
'redirectUri' => env('LINKEDIN_CONFERENCE_REDIRECT_URI'),
'scope' => env('LINKEDIN_CONFERENCE_SCOPE'),
],
'slack' => [
'clientId' => env('SLACK_KEY'),
'clientSecret' => env('SLACK_SECRET'),
'redirectUri' => env('SLACK_REDIRECT_URI'),
'scope' => env('SLACK_SCOPE'),
'verificationToken' => env('SLACK_VERIFICATION_TOKEN'),
'appId' => env('SLACK_APP_ID'),
],
'google' => [
'clientId' => env('GOOGLE_KEY'),
'clientSecret' => env('GOOGLE_SECRET'),
'redirectUri' => env('GOOGLE_REDIRECT_URI'),
'scope' => env('GOOGLE_SCOPE'),
'mapKey' => env('GOOGLE_MAP_KEY'),
],
'office' => [
'clientId' => env('MICROSOFT_OFFICE_KEY'),
'clientSecret' => env('MICROSOFT_OFFICE_SECRET'),
'redirectUri' => env('MICROSOFT_OFFICE_REDIRECT_URI'),
'scope' => env('MICROSOFT_OFFICE_SCOPE'),
],
'twilio' => [
'masterSid' => env('TWILIO_ACCOUNT_SID'),
'masterKey' => env('TWILIO_AUTH_TOKEN'),
'messagingServiceSid' => env('TWILIO_MESSAGING_SERVICE_ID'),
],
'pusher' => [
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app' => env('PUSHER_APP_ID'),
'cluster' => env('PUSHER_APP_CLUSTER'),
],
'intercom' => [
'access_token' => env('INTERCOM_TOKEN'),
'token' => env('INTERCOM_TOKEN'),
],
'circleci' => [
'token' => env('CIRCLECI_TOKEN'),
],
'planhat' => [
'enabled' => env('PLANHAT_ENABLED', false),
'jiminnyJWT' => env('PLANHAT_JIMINNY_JWT'),
'tenantUuid' => env('PLANHAT_TENANT_UUID'),
'apiRoute' => 'https://api-eu3.planhat.com/',
'analyticsApiRoute' => 'https://analytics.planhat.com/',
],
'outreach' => [
'clientId' => env('OUTREACH_APP_ID'),
'clientSecret' => env('OUTREACH_SECRET'),
'redirectUri' => env('OUTREACH_REDIRECT_URI'),
'scope' => env('OUTREACH_SCOPE'),
],
'zoom-phone' => [
'clientId' => env('ZOOM_PHONE_APP_ID'),
'clientSecret' => env('ZOOM_PHONE_SECRET'),
'redirectUri' => env('ZOOM_PHONE_REDIRECT_URI'),
'scope' => env('ZOOM_PHONE_SCOPE'),
'secretToken' => env('ZOOM_PHONE_SECRET_TOKEN'),
],
// fallback to zoom-bot
'zoom-bot' => [
'clientId' => env('ZOOM_BOT_APP_ID'),
'clientSecret' => env('ZOOM_BOT_SECRET'),
'webhookSecret' => env('ZOOM_BOT_SECRET_TOKEN'),
'redirectUri' => env('ZOOM_BOT_REDIRECT_URI'),
'scope' => env('ZOOM_BOT_SCOPE'),
],
'ms-teams' => [
'complianceBotHost' => env('TEAMS_COMPLIANCE_BOT_HOST'),
'complianceBotSecret' => env('TEAMS_COMPLIANCE_BOT_SECRET'),
],
'aircall' => [
'clientId' => env('AIRCALL_KEY'),
'clientSecret' => env('AIRCALL_SECRET'),
'redirectUri' => env('AIRCALL_REDIRECT_URI'),
'scope' => env('AIRCALL_SCOPE'),
'verificationToken' => env('AIRCALL_VERIFICATION_TOKEN'),
],
'bullhorn' => [
'clientId' => env('BULLHORN_CLIENT_ID'),
'clientSecret' => env('BULLHORN_SECRET'),
'redirectUri' => env('BULLHORN_REDIRECT_URI'),
'scope' => env('BULLHORN_SCOPE'),
'sessionTtl' => env('BULLHORN_SESSION_TTL'),
'heartbeatInterval' => env('BULLHORN_HEARTBEAT_INTERVAL'),
'retryDelays' => env('BULLHORN_RETRY_DELAYS'),
'queueDelays' => env('BULLHORN_QUEUE_DELAYS'),
],
'ringcentral' => [
'clientId' => env('RINGCENTRAL_KEY'),
'clientSecret' => env('RINGCENTRAL_SECRET'),
'redirectUri' => env('RINGCENTRAL_REDIRECT_URI'),
'scope' => env('RINGCENTRAL_SCOPE'),
'devMode' => env('APP_ENV') !== 'production',
],
// Avaya by RingCentral, accessible via the same API
'avaya' => [
'clientId' => env('RINGCENTRAL_KEY'),
'clientSecret' => env('RINGCENTRAL_SECRET'),
'redirectUri' => env('AVAYA_REDIRECT_URI'),
'scope' => env('RINGCENTRAL_SCOPE'),
'devMode' => env('APP_ENV') !== 'production',
],
'telus' => [
'clientId' => env('RINGCENTRAL_KEY'),
'clientSecret' => env('RINGCENTRAL_SECRET'),
'redirectUri' => env('TELUS_REDIRECT_URI'),
'scope' => env('RINGCENTRAL_SCOPE'),
'devMode' => env('APP_ENV') !== 'production',
],
'dialpad' => [
'clientId' => env('DIALPAD_KEY'),
'clientSecret' => env('DIALPAD_SECRET'),
'redirectUri' => env('DIALPAD_REDIRECT_URI'),
'scope' => env('DIALPAD_SCOPE'),
'isSandbox' => env('APP_ENV') !== 'production',
'secret' => env('DIALPAD_VERIFICATION_TOKEN'),
],
'talkdesk' => [
'clientId' => env('TALKDESK_APP_ID'),
'clientSecret' => env('TALKDESK_SECRET'),
'redirectUri' => env('TALKDESK_REDIRECT_URI'),
'scope' => env('TALKDESK_SCOPE'),
'subdomain' => env('TALKDESK_SUBDOMAIN'),
'region' => env('TALKDESK_REGION'),
],
'live-feed' => [
'items' => env('LIVE_FEED_ENABLED_ITEMS', ''),
],
'assembly-ai' => [
'base_url' => env('AI_PROVIDER_ASSEMBLYAI_BASEURL'),
'bearer_token' => env('TRANSCRIPTION_PROVIDER_ASSEMBLYAI_TOKEN'),
],
'userpilot' => [
'key' => env('USERPILOT_KEY', ''),
'token' => env('USERPILOT_TOKEN', ''),
],
'recall-ai' => [
'apiUrl' => env('RECALL_AI_API_URL', ''),
'apiKey' => env('RECALL_AI_API_KEY', ''),
'webhookSecret' => env('RECALL_AI_WEBHOOK_SECRET', ''),
'zoomOauthAppId' => env('RECALL_AI_ZOOM_BOT_APP_ID', ''),
'zoomRegisteredEmail' => env('RECALL_AI_ZOOM_REGISTERED_EMAIL', ''),
],
'internal_webhook' => [
'secret' => env('INTERNAL_WEBHOOK_SECRET', ''),
],
];
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class
SetupLayouts.php, class
SyncAccount.php, class
SyncContact.php, class
SyncFieldMetadata.php, class
SyncHubspotActiveDeals.php, class
SyncHubspotObjects.php, class
SyncLead.php, class
SyncObjects.php, class
SyncOpportunitiesMissingFieldDataCommand.php, class
SyncOpportunity.php, class
SyncProfileMetadata.php, class
SyncTeamMetadata.php, class
UpdateOpportunitySpecifications.php, class
DealInsights, folder
Dev, folder
Dialers, folder
DTOs, folder
Elasticsearch, folder
EngagementStats, folder
GeckoExport, folder
Livestream, folder
Mailboxes, folder
Migrate, folder
PlaybackThemes, folder
Playbooks, folder
Playlists, folder
Postmark, folder
ProphetAi, folder
Reports, folder
AutomatedReportsCommand.php, class
AutomatedReportsRetentionPolicyCommand.php, class
AutomatedReportsSendCommand.php, class
CreateMockAskJiminnyReportResultCommand.php, class
DeleteReportCommand.php, class
GenerateMarketingReport.php, class
Team.php, class
Usage.php, class
Slack, folder
Teams, folder
Tracks, folder
Transcription, folder
Twilio, folder
Users, folder
Vocabulary, folder
Zoom, folder
CoachingFeedbacksUpdateEsActivities.php, class
Command.php, class
CreateDatabaseUsers.php, class
DatabaseTableCount.php, class
DeleteOldAiCrmNotesCommand.php, class
DeleteS3LeftoversCommand.php, class
DevPostmanCommand.php, final class
DiarizeViaAiParticipantIdentificationCommand.php, class
EncryptTokensCommand.php, class
EngagementStatsRegenerateCommand.php, class
FeatureFlagsHelper.php
FixCrossTenantIssues.php, class
FlushRolesPermissionsCache.php, class
GenerateInternalWebhookToken.php, class
GroupSetDefaultLanguageCommand.php, final class
HelperTruncateCoachingTables.php, class
HubspotJournalPollingCommand.php, class
HubspotWebhookServiceCommand.php, class
ImportRecording.php, class
ImportUsersFromCsvFile.php, final class
IterateUsersCommand.php, abstract class
JiminnyCacheClearCommand.php, class
JiminnyDebugCommand.php, class
JiminnySetEncryptedTokenManagerModeCommand.php, class
JiminnyTokenInfoCommand.php, class
MakeSlackLiveCoachingChatNotesOn.php, class
ManageScimForTeam.php, class
MarkBranchForEnvironmentPipelineCommand.php, class
MuteOrganizerChannel.php, class
PhpApm.php, class
PropagateCoachingFeedbackCreatedAtToSectionFeedbacks.php, class
PurgeConferences.php, class
PurgeSoftDeletedOpportunitiesCommand.php, class
PurgeSyncBatchesCommand.php, class
RecalculateDealRisksCommand.php, class
RemoveDeleteMarkersCommand.php, class
RemoveExpiredNudgesCommand.php, class
RemoveUnusedParticipantSpeechesCommand.php, class
ResetElasticSearch.php, class
RestoreActivityCrmProviderIdCommand.php, class
RestoreActivityTypeCommand.php, class
SeedActivities.php, class
SyncActivity.php, class
TrackImported.php, class
UpdateActivitiesAverageScoreExcludingFeedbacksNotSetVisibleToAll.php, class
WhichWorkerIsWorkingOnWhichJob.php, class
Scheduling, folder
Kernel.php, class
Contracts, folder
Domain, folder
DTO, folder
Emails, folder
Enums, folder
Events, folder
Activities, folder
ActivityProvider, folder
AiAutomation, folder
Audio, folder
Bots, folder...
|
PhpStorm
|
faVsco.js – services.php
|
NULL
|
77051
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Show Replace Field
Search History
user
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/1
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Built-in Preview
Chrome
Firefox
Safari
Sync Changes
Hide This Notification
Code changed:
Hide
33
Previous Highlighted Error
Next Highlighted Error
<?php
return [
'authy' => [
'secret' => env('AUTHY_SECRET'),
],
'github' => [
'token' => env('GITHUB_TOKEN'),
],
/*
|--------------------------------------------------------------------------
| Third Party Services
|--------------------------------------------------------------------------
|
| This file is for storing the credentials for third party services such
| as Mailgun, Postmark, AWS and more. This file provides the de facto
| location for this type of information, allowing packages to have
| a conventional file to locate the various service credentials.
|
*/
'mailgun' => [
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
'scheme' => 'https',
],
'postmark' => [
'token' => env('POSTMARK_TOKEN'),
'recipient_override' => env('POSTMARK_RECIPIENT_OVERRIDE'),
],
'ses' => [
'key' => env('SES_ACCESS_KEY', env('AWS_ACCESS_KEY_ID')),
'secret' => env('SES_SECRET_KEY', env('AWS_SECRET_ACCESS_KEY')),
'region' => env('SES_REGION', env('AWS_DEFAULT_REGION', 'us-east-1')),
],
'salesforce' => [
'clientId' => env('SALESFORCE_KEY'),
'clientSecret' => env('SALESFORCE_SECRET'),
'redirectUri' => env('SALESFORCE_REDIRECT_URI'),
'scope' => env('SALESFORCE_SCOPE'),
],
'hubspot' => [
'clientId' => env('HUBSPOT_KEY'),
'clientSecret' => env('HUBSPOT_SECRET'),
'redirectUri' => env('HUBSPOT_REDIRECT_URI'),
'scope' => env('HUBSPOT_SCOPE'),
'app' => env('HUBSPOT_APP_ID'),
'webhook_forward_urls' => array_filter(
explode(',', env('HUBSPOT_WEBHOOK_FORWARD_URLS', ''))
),
'journalScope' => env('HUBSPOT_JOURNAL_SCOPE'),
],
'pipedrive' => [
'clientId' => env('PIPEDRIVE_KEY'),
'clientSecret' => env('PIPEDRIVE_SECRET'),
'redirectUri' => env('PIPEDRIVE_REDIRECT_URI'),
'redirectUrl' => env('PIPEDRIVE_REDIRECT_URI'), // Needed for the SDK.
'scope' => env('PIPEDRIVE_SCOPE'),
],
'salesloft' => [
'clientId' => env('SALESLOFT_KEY'),
'clientSecret' => env('SALESLOFT_SECRET'),
'redirectUri' => env('SALESLOFT_REDIRECT_URI'),
'scope' => env('SALESLOFT_SCOPE'),
],
'linkedin' => [
'clientId' => env('LINKEDIN_KEY'),
'clientSecret' => env('LINKEDIN_SECRET'),
'redirectUri' => env('LINKEDIN_REDIRECT_URI'),
'scope' => env('LINKEDIN_SCOPE'),
],
'linkedin-conference' => [
'clientId' => env('LINKEDIN_CONFERENCE_KEY'),
'clientSecret' => env('LINKEDIN_CONFERENCE_SECRET'),
'redirectUri' => env('LINKEDIN_CONFERENCE_REDIRECT_URI'),
'scope' => env('LINKEDIN_CONFERENCE_SCOPE'),
],
'slack' => [
'clientId' => env('SLACK_KEY'),
'clientSecret' => env('SLACK_SECRET'),
'redirectUri' => env('SLACK_REDIRECT_URI'),
'scope' => env('SLACK_SCOPE'),
'verificationToken' => env('SLACK_VERIFICATION_TOKEN'),
'appId' => env('SLACK_APP_ID'),
],
'google' => [
'clientId' => env('GOOGLE_KEY'),
'clientSecret' => env('GOOGLE_SECRET'),
'redirectUri' => env('GOOGLE_REDIRECT_URI'),
'scope' => env('GOOGLE_SCOPE'),
'mapKey' => env('GOOGLE_MAP_KEY'),
],
'office' => [
'clientId' => env('MICROSOFT_OFFICE_KEY'),
'clientSecret' => env('MICROSOFT_OFFICE_SECRET'),
'redirectUri' => env('MICROSOFT_OFFICE_REDIRECT_URI'),
'scope' => env('MICROSOFT_OFFICE_SCOPE'),
],
'twilio' => [
'masterSid' => env('TWILIO_ACCOUNT_SID'),
'masterKey' => env('TWILIO_AUTH_TOKEN'),
'messagingServiceSid' => env('TWILIO_MESSAGING_SERVICE_ID'),
],
'pusher' => [
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app' => env('PUSHER_APP_ID'),
'cluster' => env('PUSHER_APP_CLUSTER'),
],
'intercom' => [
'access_token' => env('INTERCOM_TOKEN'),
'token' => env('INTERCOM_TOKEN'),
],
'circleci' => [
'token' => env('CIRCLECI_TOKEN'),
],
'planhat' => [
'enabled' => env('PLANHAT_ENABLED', false),
'jiminnyJWT' => env('PLANHAT_JIMINNY_JWT'),
'tenantUuid' => env('PLANHAT_TENANT_UUID'),
'apiRoute' => 'https://api-eu3.planhat.com/',
'analyticsApiRoute' => 'https://analytics.planhat.com/',
],
'outreach' => [
'clientId' => env('OUTREACH_APP_ID'),
'clientSecret' => env('OUTREACH_SECRET'),
'redirectUri' => env('OUTREACH_REDIRECT_URI'),
'scope' => env('OUTREACH_SCOPE'),
],
'zoom-phone' => [
'clientId' => env('ZOOM_PHONE_APP_ID'),
'clientSecret' => env('ZOOM_PHONE_SECRET'),
'redirectUri' => env('ZOOM_PHONE_REDIRECT_URI'),
'scope' => env('ZOOM_PHONE_SCOPE'),
'secretToken' => env('ZOOM_PHONE_SECRET_TOKEN'),
],
// fallback to zoom-bot
'zoom-bot' => [
'clientId' => env('ZOOM_BOT_APP_ID'),
'clientSecret' => env('ZOOM_BOT_SECRET'),
'webhookSecret' => env('ZOOM_BOT_SECRET_TOKEN'),
'redirectUri' => env('ZOOM_BOT_REDIRECT_URI'),
'scope' => env('ZOOM_BOT_SCOPE'),
],
'ms-teams' => [
'complianceBotHost' => env('TEAMS_COMPLIANCE_BOT_HOST'),
'complianceBotSecret' => env('TEAMS_COMPLIANCE_BOT_SECRET'),
],
'aircall' => [
'clientId' => env('AIRCALL_KEY'),
'clientSecret' => env('AIRCALL_SECRET'),
'redirectUri' => env('AIRCALL_REDIRECT_URI'),
'scope' => env('AIRCALL_SCOPE'),
'verificationToken' => env('AIRCALL_VERIFICATION_TOKEN'),
],
'bullhorn' => [
'clientId' => env('BULLHORN_CLIENT_ID'),
'clientSecret' => env('BULLHORN_SECRET'),
'redirectUri' => env('BULLHORN_REDIRECT_URI'),
'scope' => env('BULLHORN_SCOPE'),
'sessionTtl' => env('BULLHORN_SESSION_TTL'),
'heartbeatInterval' => env('BULLHORN_HEARTBEAT_INTERVAL'),
'retryDelays' => env('BULLHORN_RETRY_DELAYS'),
'queueDelays' => env('BULLHORN_QUEUE_DELAYS'),
],
'ringcentral' => [
'clientId' => env('RINGCENTRAL_KEY'),
'clientSecret' => env('RINGCENTRAL_SECRET'),
'redirectUri' => env('RINGCENTRAL_REDIRECT_URI'),
'scope' => env('RINGCENTRAL_SCOPE'),
'devMode' => env('APP_ENV') !== 'production',
],
// Avaya by RingCentral, accessible via the same API
'avaya' => [
'clientId' => env('RINGCENTRAL_KEY'),
'clientSecret' => env('RINGCENTRAL_SECRET'),
'redirectUri' => env('AVAYA_REDIRECT_URI'),
'scope' => env('RINGCENTRAL_SCOPE'),
'devMode' => env('APP_ENV') !== 'production',
],
'telus' => [
'clientId' => env('RINGCENTRAL_KEY'),
'clientSecret' => env('RINGCENTRAL_SECRET'),
'redirectUri' => env('TELUS_REDIRECT_URI'),
'scope' => env('RINGCENTRAL_SCOPE'),
'devMode' => env('APP_ENV') !== 'production',
],
'dialpad' => [
'clientId' => env('DIALPAD_KEY'),
'clientSecret' => env('DIALPAD_SECRET'),
'redirectUri' => env('DIALPAD_REDIRECT_URI'),
'scope' => env('DIALPAD_SCOPE'),
'isSandbox' => env('APP_ENV') !== 'production',
'secret' => env('DIALPAD_VERIFICATION_TOKEN'),
],
'talkdesk' => [
'clientId' => env('TALKDESK_APP_ID'),
'clientSecret' => env('TALKDESK_SECRET'),
'redirectUri' => env('TALKDESK_REDIRECT_URI'),
'scope' => env('TALKDESK_SCOPE'),
'subdomain' => env('TALKDESK_SUBDOMAIN'),
'region' => env('TALKDESK_REGION'),
],
'live-feed' => [
'items' => env('LIVE_FEED_ENABLED_ITEMS', ''),
],
'assembly-ai' => [
'base_url' => env('AI_PROVIDER_ASSEMBLYAI_BASEURL'),
'bearer_token' => env('TRANSCRIPTION_PROVIDER_ASSEMBLYAI_TOKEN'),
],
'userpilot' => [
'key' => env('USERPILOT_KEY', ''),
'token' => env('USERPILOT_TOKEN', ''),
],
'recall-ai' => [
'apiUrl' => env('RECALL_AI_API_URL', ''),
'apiKey' => env('RECALL_AI_API_KEY', ''),
'webhookSecret' => env('RECALL_AI_WEBHOOK_SECRET', ''),
'zoomOauthAppId' => env('RECALL_AI_ZOOM_BOT_APP_ID', ''),
'zoomRegisteredEmail' => env('RECALL_AI_ZOOM_REGISTERED_EMAIL', ''),
],
'internal_webhook' => [
'secret' => env('INTERNAL_WEBHOOK_SECRET', ''),
],
];
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class
SetupLayouts.php, class
SyncAccount.php, class
SyncContact.php, class
SyncFieldMetadata.php, class
SyncHubspotActiveDeals.php, class
SyncHubspotObjects.php, class
SyncLead.php, class
SyncObjects.php, class
SyncOpportunitiesMissingFieldDataCommand.php, class
SyncOpportunity.php, class
SyncProfileMetadata.php, class
SyncTeamMetadata.php, class
UpdateOpportunitySpecifications.php, class
DealInsights, folder
Dev, folder
Dialers, folder
DTOs, folder
Elasticsearch, folder
EngagementStats, folder
GeckoExport, folder
Livestream, folder
Mailboxes, folder
Migrate, folder
PlaybackThemes, folder
Playbooks, folder
Playlists, folder
Postmark, folder
ProphetAi, folder
Reports, folder
AutomatedReportsCommand.php, class
AutomatedReportsRetentionPolicyCommand.php, class
AutomatedReportsSendCommand.php, class
CreateMockAskJiminnyReportResultCommand.php, class
DeleteReportCommand.php, class
GenerateMarketingReport.php, class
Team.php, class...
|
PhpStorm
|
faVsco.js – services.php
|
NULL
|
77052
|
|
Project: faVsco.js, menu
JY-20738-debug-AJ-trackin Project: faVsco.js, menu
JY-20738-debug-AJ-tracking-UP, menu
Start Listening for PHP Debug Connections
ReportControllerTest
Run 'ReportControllerTest'
Debug 'ReportControllerTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Show Replace Field
Search History
user
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/1
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Built-in Preview
Chrome
Firefox
Safari
Sync Changes
Hide This Notification
Code changed:
Hide
33
Previous Highlighted Error
Next Highlighted Error
<?php
return [
'authy' => [
'secret' => env('AUTHY_SECRET'),
],
'github' => [
'token' => env('GITHUB_TOKEN'),
],
/*
|--------------------------------------------------------------------------
| Third Party Services
|--------------------------------------------------------------------------
|
| This file is for storing the credentials for third party services such
| as Mailgun, Postmark, AWS and more. This file provides the de facto
| location for this type of information, allowing packages to have
| a conventional file to locate the various service credentials.
|
*/
'mailgun' => [
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
'scheme' => 'https',
],
'postmark' => [
'token' => env('POSTMARK_TOKEN'),
'recipient_override' => env('POSTMARK_RECIPIENT_OVERRIDE'),
],
'ses' => [
'key' => env('SES_ACCESS_KEY', env('AWS_ACCESS_KEY_ID')),
'secret' => env('SES_SECRET_KEY', env('AWS_SECRET_ACCESS_KEY')),
'region' => env('SES_REGION', env('AWS_DEFAULT_REGION', 'us-east-1')),
],
'salesforce' => [
'clientId' => env('SALESFORCE_KEY'),
'clientSecret' => env('SALESFORCE_SECRET'),
'redirectUri' => env('SALESFORCE_REDIRECT_URI'),
'scope' => env('SALESFORCE_SCOPE'),
],
'hubspot' => [
'clientId' => env('HUBSPOT_KEY'),
'clientSecret' => env('HUBSPOT_SECRET'),
'redirectUri' => env('HUBSPOT_REDIRECT_URI'),
'scope' => env('HUBSPOT_SCOPE'),
'app' => env('HUBSPOT_APP_ID'),
'webhook_forward_urls' => array_filter(
explode(',', env('HUBSPOT_WEBHOOK_FORWARD_URLS', ''))
),
'journalScope' => env('HUBSPOT_JOURNAL_SCOPE'),
],
'pipedrive' => [
'clientId' => env('PIPEDRIVE_KEY'),
'clientSecret' => env('PIPEDRIVE_SECRET'),
'redirectUri' => env('PIPEDRIVE_REDIRECT_URI'),
'redirectUrl' => env('PIPEDRIVE_REDIRECT_URI'), // Needed for the SDK.
'scope' => env('PIPEDRIVE_SCOPE'),
],
'salesloft' => [
'clientId' => env('SALESLOFT_KEY'),
'clientSecret' => env('SALESLOFT_SECRET'),
'redirectUri' => env('SALESLOFT_REDIRECT_URI'),
'scope' => env('SALESLOFT_SCOPE'),
],
'linkedin' => [
'clientId' => env('LINKEDIN_KEY'),
'clientSecret' => env('LINKEDIN_SECRET'),
'redirectUri' => env('LINKEDIN_REDIRECT_URI'),
'scope' => env('LINKEDIN_SCOPE'),
],
'linkedin-conference' => [
'clientId' => env('LINKEDIN_CONFERENCE_KEY'),
'clientSecret' => env('LINKEDIN_CONFERENCE_SECRET'),
'redirectUri' => env('LINKEDIN_CONFERENCE_REDIRECT_URI'),
'scope' => env('LINKEDIN_CONFERENCE_SCOPE'),
],
'slack' => [
'clientId' => env('SLACK_KEY'),
'clientSecret' => env('SLACK_SECRET'),
'redirectUri' => env('SLACK_REDIRECT_URI'),
'scope' => env('SLACK_SCOPE'),
'verificationToken' => env('SLACK_VERIFICATION_TOKEN'),
'appId' => env('SLACK_APP_ID'),
],
'google' => [
'clientId' => env('GOOGLE_KEY'),
'clientSecret' => env('GOOGLE_SECRET'),
'redirectUri' => env('GOOGLE_REDIRECT_URI'),
'scope' => env('GOOGLE_SCOPE'),
'mapKey' => env('GOOGLE_MAP_KEY'),
],
'office' => [
'clientId' => env('MICROSOFT_OFFICE_KEY'),
'clientSecret' => env('MICROSOFT_OFFICE_SECRET'),
'redirectUri' => env('MICROSOFT_OFFICE_REDIRECT_URI'),
'scope' => env('MICROSOFT_OFFICE_SCOPE'),
],
'twilio' => [
'masterSid' => env('TWILIO_ACCOUNT_SID'),
'masterKey' => env('TWILIO_AUTH_TOKEN'),
'messagingServiceSid' => env('TWILIO_MESSAGING_SERVICE_ID'),
],
'pusher' => [
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app' => env('PUSHER_APP_ID'),
'cluster' => env('PUSHER_APP_CLUSTER'),
],
'intercom' => [
'access_token' => env('INTERCOM_TOKEN'),
'token' => env('INTERCOM_TOKEN'),
],
'circleci' => [
'token' => env('CIRCLECI_TOKEN'),
],
'planhat' => [
'enabled' => env('PLANHAT_ENABLED', false),
'jiminnyJWT' => env('PLANHAT_JIMINNY_JWT'),
'tenantUuid' => env('PLANHAT_TENANT_UUID'),
'apiRoute' => 'https://api-eu3.planhat.com/',
'analyticsApiRoute' => 'https://analytics.planhat.com/',
],
'outreach' => [
'clientId' => env('OUTREACH_APP_ID'),
'clientSecret' => env('OUTREACH_SECRET'),
'redirectUri' => env('OUTREACH_REDIRECT_URI'),
'scope' => env('OUTREACH_SCOPE'),
],
'zoom-phone' => [
'clientId' => env('ZOOM_PHONE_APP_ID'),
'clientSecret' => env('ZOOM_PHONE_SECRET'),
'redirectUri' => env('ZOOM_PHONE_REDIRECT_URI'),
'scope' => env('ZOOM_PHONE_SCOPE'),
'secretToken' => env('ZOOM_PHONE_SECRET_TOKEN'),
],
// fallback to zoom-bot
'zoom-bot' => [
'clientId' => env('ZOOM_BOT_APP_ID'),
'clientSecret' => env('ZOOM_BOT_SECRET'),
'webhookSecret' => env('ZOOM_BOT_SECRET_TOKEN'),
'redirectUri' => env('ZOOM_BOT_REDIRECT_URI'),
'scope' => env('ZOOM_BOT_SCOPE'),
],
'ms-teams' => [
'complianceBotHost' => env('TEAMS_COMPLIANCE_BOT_HOST'),
'complianceBotSecret' => env('TEAMS_COMPLIANCE_BOT_SECRET'),
],
'aircall' => [
'clientId' => env('AIRCALL_KEY'),
'clientSecret' => env('AIRCALL_SECRET'),
'redirectUri' => env('AIRCALL_REDIRECT_URI'),
'scope' => env('AIRCALL_SCOPE'),
'verificationToken' => env('AIRCALL_VERIFICATION_TOKEN'),
],
'bullhorn' => [
'clientId' => env('BULLHORN_CLIENT_ID'),
'clientSecret' => env('BULLHORN_SECRET'),
'redirectUri' => env('BULLHORN_REDIRECT_URI'),
'scope' => env('BULLHORN_SCOPE'),
'sessionTtl' => env('BULLHORN_SESSION_TTL'),
'heartbeatInterval' => env('BULLHORN_HEARTBEAT_INTERVAL'),
'retryDelays' => env('BULLHORN_RETRY_DELAYS'),
'queueDelays' => env('BULLHORN_QUEUE_DELAYS'),
],
'ringcentral' => [
'clientId' => env('RINGCENTRAL_KEY'),
'clientSecret' => env('RINGCENTRAL_SECRET'),
'redirectUri' => env('RINGCENTRAL_REDIRECT_URI'),
'scope' => env('RINGCENTRAL_SCOPE'),
'devMode' => env('APP_ENV') !== 'production',
],
// Avaya by RingCentral, accessible via the same API
'avaya' => [
'clientId' => env('RINGCENTRAL_KEY'),
'clientSecret' => env('RINGCENTRAL_SECRET'),
'redirectUri' => env('AVAYA_REDIRECT_URI'),
'scope' => env('RINGCENTRAL_SCOPE'),
'devMode' => env('APP_ENV') !== 'production',
],
'telus' => [
'clientId' => env('RINGCENTRAL_KEY'),
'clientSecret' => env('RINGCENTRAL_SECRET'),
'redirectUri' => env('TELUS_REDIRECT_URI'),
'scope' => env('RINGCENTRAL_SCOPE'),
'devMode' => env('APP_ENV') !== 'production',
],
'dialpad' => [
'clientId' => env('DIALPAD_KEY'),
'clientSecret' => env('DIALPAD_SECRET'),
'redirectUri' => env('DIALPAD_REDIRECT_URI'),
'scope' => env('DIALPAD_SCOPE'),
'isSandbox' => env('APP_ENV') !== 'production',
'secret' => env('DIALPAD_VERIFICATION_TOKEN'),
],
'talkdesk' => [
'clientId' => env('TALKDESK_APP_ID'),
'clientSecret' => env('TALKDESK_SECRET'),
'redirectUri' => env('TALKDESK_REDIRECT_URI'),
'scope' => env('TALKDESK_SCOPE'),
'subdomain' => env('TALKDESK_SUBDOMAIN'),
'region' => env('TALKDESK_REGION'),
],
'live-feed' => [
'items' => env('LIVE_FEED_ENABLED_ITEMS', ''),
],
'assembly-ai' => [
'base_url' => env('AI_PROVIDER_ASSEMBLYAI_BASEURL'),
'bearer_token' => env('TRANSCRIPTION_PROVIDER_ASSEMBLYAI_TOKEN'),
],
'userpilot' => [
'key' => env('USERPILOT_KEY', ''),
'token' => env('USERPILOT_TOKEN', ''),
],
'recall-ai' => [
'apiUrl' => env('RECALL_AI_API_URL', ''),
'apiKey' => env('RECALL_AI_API_KEY', ''),
'webhookSecret' => env('RECALL_AI_WEBHOOK_SECRET', ''),
'zoomOauthAppId' => env('RECALL_AI_ZOOM_BOT_APP_ID', ''),
'zoomRegisteredEmail' => env('RECALL_AI_ZOOM_REGISTERED_EMAIL', ''),
],
'internal_webhook' => [
'secret' => env('INTERNAL_WEBHOOK_SECRET', ''),
],
];
Sync Changes
Hide This Notification
Code changed:
Hide
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\UserPilot;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http;
use Jiminny\Models\Feature\FeatureEnum;
use Jiminny\Models\Partner;
use Jiminny\Models\Team;
use Jiminny\Models\User;
class UserPilotClient
{
private const API_ENDPOINT = 'https://api.userpilot.io/v1/';
private const ANALYTICS_ENDPOINT = 'https://analytex.userpilot.io/v1/';
private function createRequest(): PendingRequest
{
return Http::withHeaders([
'X-API-Version' => '2020-09-22',
'Authorization' => 'Token ' . config('services.userpilot.key'),
]);
}
public function track(User $user, string $event, array $payload = []): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'track', [
'event_name' => $event,
'user_id' => $user->getUuid(),
'metadata' => $payload,
]);
}
public function upsertUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$companyMetadata = $this->getCompanyMetadata($user->getTeam());
$companyMetadata['id'] = $user->getTeam()->getUuid();
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'identify', [
'user_id' => $user->getUuid(),
'metadata' => [
'name' => $user->name,
'first_name' => $user->getFirstName(),
'position' => $user->job ? $user->job->name : null,
'email' => $user->getEmailAddress(),
'created_at' => $user->getCreatedAt()->unix(),
'is_admin' => $user->hasRole(User::ROLE_ADMIN),
'is_manager' => $user->hasRole(User::ROLE_MANAGER),
'is_owner' => $user->isTeamOwner(),
'is_insights' => $user->hasRole(User::ROLE_ANALYST),
'is_recorder' => $user->hasRole(User::ROLE_RECORDER),
'is_jiminny_voice' => $user->hasRole(User::ROLE_RECORDER_AND_VOICE),
'is_listener' => $user->hasRole(User::ROLE_LISTENER),
'license' => null,
'team' => $user->group ? $user->group->name : null,
'language' => $user->getLanguage(),
'email_sync' => $user->isSyncEmailEnabled(),
],
'company' => $companyMetadata,
]);
}
public function upsertCompany(Team $team): void
{
$this->createRequest()->post(self::ANALYTICS_ENDPOINT . 'companies/identify', [
'company_id' => $team->getUuid(),
'metadata' => $this->getCompanyMetadata($team),
]);
}
private function getCompanyMetadata(Team $team): array
{
return [
'created_at' => $team->getCreatedAt()->unix(),
'name' => $team->getName(),
'region' => config('jiminny.deploy_region'),
'crm' => $team->getCrmConfiguration()->getProviderName(),
'crm_installed_app_version' => $team->getCrmConfiguration()->getInstalledAppVersion(),
'calendar' => $team->getCalendarProvider(),
'notification_provider' => $team->getNotificationProvider(),
'has_jiminny_voice' => $team->hasFeature(FeatureEnum::DIALER),
'tier' => $team->getTier()?->getTitle(),
];
}
public function deleteUser(User $user): void
{
if ($this->shouldRequest($user->getTeam()) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'users', [
'users' => [$user->getUuid()],
]);
}
public function deleteCompany(Team $team): void
{
if ($this->shouldRequest($team) === false) {
return;
}
$this->createRequest()->delete(self::API_ENDPOINT . 'companies', [
'companies' => [$team->getUuid()],
]);
}
public function shouldRequest(Team $team): bool
{
return config('services.userpilot.key') !== null && $team->getPartnerId() === Partner::PARTNER_DEFAULT;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide
app ~/jiminny/app, folder
.circleci, folder
.cursor, folder
.github
.sonarlint, folder
.vscode, folder
.windsurf, folder
app, sources root
Actions, folder
Component, folder
Acl, folder
ActionItems, folder
Activity, folder
ActivityAnalytics, folder
ActivitySearch, folder
AiActivityType, folder
AiAutomation, folder
AiCallScoring, folder
AskAnything, folder
Dtos, folder
Events, folder
AskAnythingPromptService.php, class
HistoryService.php, class
AskJiminnyAi, folder
AWS, folder
BillingManagement, folder
Cache, folder
CoachingFeedback, folder
Country, folder
CustomerApi, folder
Database, folder
Datadog, folder
DateTime, folder
DealInsights, folder
DealRisks, folder
ElasticSearch, folder
Eloquent, folder
Encoding, folder
Encryption, folder
ES, folder
Faker, folder
FeatureFlags, folder
FFMpeg, folder
FileSystem, folder
Gecko, folder
Gong, folder
GuzzleHttp, folder
KeyPoints, folder
Kiosk, folder
LanguageDetection, folder
LiveFeed, folder
Locks, folder
Math, folder
MediaPipeline, folder
MeetingBot, folder
MobileSettings, folder
Model, folder
Notification, folder
Nudge, folder
ParagraphBreaker, folder
ParticipantSpeech, folder
PartitionedCookie, folder
PlaybackPage, folder
Playlist, folder
Prophet, folder
ProphetAi, folder
ProsperWorks, folder
Queue, folder
Router, folder
Saml2, folder
SCIM, folder
Seeder, folder
Sentry, folder
Serializer, folder
Settings, folder
Sidekick, folder
Slack, folder
TeamInsights, folder
TimeMemoryMapper, folder
Transcription, folder
TranscriptionSummary, folder
Twilio, folder
Uploader, folder
UrlGenerator, folder
Utility, folder
Uuid, folder
Waveform, folder
Webhooks, folder
Workflow, folder
Configuration, folder
Console, folder
Commands, folder
Activities, folder
Analytics, folder
Calendars, folder
Crm, folder
Hubspot, folder
IntegrationApp, folder
Traits, folder
AddLayoutEntities.php, class
AutologDelayedCommand.php, class
BullhornCommandAbstract.php, abstract class
BullhornPingCommand.php, class
BullhornSearchCommand.php, class
BullhornSessionCommand.php, class
CheckActivityLoggableCommand.php, final class
CleanDuplicateFieldDataCommand.php, class
FullSyncOpportunityCommand.php, class
LogActivitiesCommand.php, final class
ManageSyncStrategyCommand.php, class
MatchCrmObjectsCommand.php, class
MatchOpportunityActivitiesCommand.php, class
MigrateProvider.php, class
ProcessHubspotObjectsSyncBatches.php, class
PurgeDeletedOpportunitiesCommand.php, class
ResetGovernorLimits.php, class
SendNotLogged.php, class
SetupActivityTypeForFollowUp.php, final class
SetupCloseCrm.php, class
SetupCopperCrm.php, class
SetupCrmCommand.php, abstract class
SetupLayouts.php, class
SyncAccount.php, class
SyncContact.php, class
SyncFieldMetadata.php, class
SyncHubspotActiveDeals.php, class
SyncHubspotObjects.php, class
SyncLead.php, class
SyncObjects.php, class
SyncOpportunitiesMissingFieldDataCommand.php, class
SyncOpportunity.php, class
SyncProfileMetadata.php, class
SyncTeamMetadata.php, class
UpdateOpportunitySpecifications.php, class
DealInsights, folder
Dev, folder
Dialers, folder
DTOs, folder
Elasticsearch, folder
EngagementStats, folder
GeckoExport, folder
Livestream, folder
Mailboxes, folder
Migrate, folder
PlaybackThemes, folder
Playbooks, folder
Playlists, folder
Postmark, folder
ProphetAi, folder
Reports, folder
AutomatedReportsCommand.php, class
AutomatedReportsRetentionPolicyCommand.php, class
AutomatedReportsSendCommand.php, class
CreateMockAskJiminnyReportResultCommand.php, class
DeleteReportCommand.php, class
GenerateMarketingReport.php, class
Team.php, class
Usage.php, class
Slack, folder
Teams, folder
Tracks, folder
Transcription, folder
Twilio, folder
Users, folder
Vocabulary, folder
Zoom, folder
CoachingFeedbacksUpdateEsActivities.php, class
Command.php, class
CreateDatabaseUsers.php, class
DatabaseTableCount.php, class
DeleteOldAiCrmNotesCommand.php, class
DeleteS3LeftoversCommand.php, class
DevPostmanCommand.php, final class
DiarizeViaAiParticipantIdentificationCommand.php, class
EncryptTokensCommand.php, class
EngagementStatsRegenerateCommand.php, class
FeatureFlagsHelper.php
FixCrossTenantIssues.php, class
FlushRolesPermissionsCache.php, class
GenerateInternalWebhookToken.php, class
GroupSetDefaultLanguageCommand.php, final class
HelperTruncateCoachingTables.php, class
HubspotJournalPollingCommand.php, class
HubspotWebhookServiceCommand.php, class...
|
PhpStorm
|
faVsco.js – services.php
|
NULL
|
77053
|
|
Project Files
Preview
Filter
Open in Find Tool Win Project Files
Preview
Filter
Open in Find Tool Window
.
config config
config.yml .circleci, YAML file
Config app/Services/Activity/BaseService/Config
Config app/Services/Activity/Talkdesk/Config
Config app/Services/Activity/Vonage/Config
Config app/Services/Crm/IntegrationApp/Config
Config tests/Unit/Services/Activity/BaseService/Config
Config tests/Unit/Services/Activity/Talkdesk/Config
Config build/coverage/Services/Activity/BaseService/Config
Config build/coverage/Services/Activity/Talkdesk/Config
Config build/coverage/Services/Activity/Vonage/Config
config_continue.yml .circleci, YAML file
Config.php.html build/coverage/Component/.../Http/Transcription/Speechmatics/SpeechmaticsV2/SuccessfulResponse
Configuration.php .../app/Models/Crm/Configuration.php, class
Configuration.php.html build/coverage/Models/Crm
config config
config.yml .circleci, YAML file
Config app/Services/Activity/BaseService/Config
Config app/Services/Activity/Talkdesk/Config
Config app/Services/Activity/Vonage/Config
Config app/Services/Crm/IntegrationApp/Config
Config tests/Unit/Services/Activity/BaseService/Config
Config tests/Unit/Services/Activity/Talkdesk/Config
Config build/coverage/Services/Activity/BaseService/Config
Config build/coverage/Services/Activity/Talkdesk/Config
Config build/coverage/Services/Activity/Vonage/Config
config_continue.yml .circleci, YAML file
Config.php.html build/coverage/Component/.../Http/Transcription/Speechmatics/SpeechmaticsV2/SuccessfulResponse
Configuration.php .../app/Models/Crm/Configuration.php, class
Configuration.php.html build/coverage/Models/Crm
config
Open In Right Split...
|
PhpStorm
|
|
NULL
|
77054
|