/** * @param CampaignExecutionEvent $event */ public function onCampaignTriggerDecision(CampaignExecutionEvent $event) { $eventDetails = $event->getEventDetails(); if ($eventDetails === null) { return $event->setResult(true); } $limitToForms = $event->getConfig()['forms']; //check against selected forms if (!empty($limitToForms) && !in_array($eventDetails->getId(), $limitToForms)) { return $event->setResult(false); } return $event->setResult(true); }
/** * @param CampaignExecutionEvent $event */ public function onCampaignTriggerDecision(CampaignExecutionEvent $event) { $eventDetails = $event->getEventDetails(); if ($eventDetails == null) { return $event->setResult(true); } $assetId = $eventDetails->getId(); $limitToAssets = $event->getConfig()['assets']; if (!empty($limitToAssets) && !in_array($assetId, $limitToAssets)) { //no points change return $event->setResult(false); } $event->setResult(true); }
/** * @param CampaignExecutionEvent $event */ public function onCampaignTriggerDecision(CampaignExecutionEvent $event) { $eventConfig = $event->getConfig(); $eventDetails = $event->getEventDetails(); $lead = $event->getLead(); if ($eventConfig['dwc_slot_name'] === $eventDetails) { $defaultDwc = $this->dynamicContentModel->getRepository()->getEntity($eventConfig['dynamicContent']); if ($defaultDwc instanceof DynamicContent) { // Set the default content in case none of the actions return data $this->dynamicContentModel->setSlotContentForLead($defaultDwc, $lead, $eventDetails); } $this->session->set('dwc.slot_name.lead.' . $lead->getId(), $eventDetails); $event->stopPropagation(); return $event->setResult(true); } }
/** * @param CampaignExecutionEvent $event */ public function onCampaignTriggerAction(CampaignExecutionEvent $event) { $emailSent = false; $lead = $event->getLead(); $leadCredentials = $lead instanceof Lead ? $lead->getProfileFields() : $lead; $leadCredentials['owner_id'] = $lead instanceof Lead && ($owner = $lead->getOwner()) ? $owner->getId() : 0; if (!empty($leadCredentials['email'])) { $config = $event->getConfig(); $emailId = (int) $config['email']; $email = $this->emailModel->getEntity($emailId); if ($email != null && $email->isPublished()) { // Determine if this email is transactional/marketing $type = isset($config['email_type']) ? $config['email_type'] : 'transactional'; if ('marketing' == $type) { // Determine if this lead has received the email before $stats = $this->emailModel->getStatRepository()->findContactEmailStats($leadCredentials['id'], $emailId); if (count($stats)) { // Already sent return $event->setResult(true); } } $eventDetails = $event->getEventDetails(); $options = ['source' => ['campaign', $eventDetails['campaign']['id']]]; $emailSent = $this->emailModel->sendEmail($email, $leadCredentials, $options); } $event->setChannel('email', $emailId); } return $event->setResult($emailSent); }
/** * @param CampaignExecutionEvent $event */ public function onCampaignTriggerDecision(CampaignExecutionEvent $event) { $eventDetails = $event->getEventDetails(); $config = $event->getConfig(); if ($eventDetails == null) { return true; } $pageHit = $eventDetails->getPage(); // Check Landing Pages if ($pageHit instanceof Page) { list($parent, $children) = $pageHit->getVariants(); //use the parent (self or configured parent) $pageHitId = $parent->getId(); } else { $pageHitId = 0; } $limitToPages = $config['pages']; $urlMatches = array(); // Check Landing Pages URL or Tracing Pixel URL if (isset($config['url']) && $config['url']) { $pageUrl = $eventDetails->getUrl(); $limitToUrls = explode(',', $config['url']); foreach ($limitToUrls as $url) { $url = trim($url); $urlMatches[$url] = fnmatch($url, $pageUrl); } } // **Page hit is true if:** // 1. no landing page is set and no URL rule is set $applyToAny = empty($config['url']) && empty($limitToPages); // 2. some landing pages are set and page ID match $langingPageIsHit = !empty($limitToPages) && in_array($pageHitId, $limitToPages); // 3. URL rule is set and match with URL hit $urlIsHit = !empty($config['url']) && in_array(true, $urlMatches); if ($applyToAny || $langingPageIsHit || $urlIsHit) { return $event->setResult(true); } return $event->setResult(false); }
/** * @param CampaignExecutionEvent $event */ public function onCampaignTriggerDecision(CampaignExecutionEvent $event) { $eventDetails = $event->getEventDetails(); $eventParent = $event->getEvent()['parent']; if ($eventDetails == null) { return $event->setResult(false); } //check to see if the parent event is a "send email" event and that it matches the current email opened if (!empty($eventParent) && $eventParent['type'] === 'email.send') { return $event->setResult($eventDetails->getId() === (int) $eventParent['properties']['email']); } return $event->setResult(false); }