Jump to content


Member Since 18 Oct 2018
Offline Last Active Apr 17 2019 08:23 AM

Topics I've Started

Fix for "Add to list" and "Remove from List"

16 April 2019 - 03:34 PM

Here is code for a fix for the workflow actions, it will be included in next update.


in both X2FlowRecordListAdd.php and X2FlowRecordListRemove.php change 


'linkSource' => Yii::app()->controller->createUrl(
                           CActiveRecord::model('X2List')->autoCompleteSource, array(
'linkSource' => Yii::app()->controller->createUrl(
                       "/contacts/contacts/getAllLists", array(
and add to ContactsController.php
                'actions' => array('getItems', 'getLists', 'ignoreDuplicates', 'discardNew',
                'actions' => array('getItems', 'getLists', 'getAllLists', 'ignoreDuplicates', 'discardNew',


Also add this function 



     * Return a JSON encoded list of all the lists
    public function actionGetAllLists() {
        if (!Yii::app()->user->checkAccess('ContactsAdminAccess')) {
            $condition = ' AND (visibility="1" OR assignedTo="Anyone"  OR assignedTo="' . Yii::app()->user->getName() . '"';
            /* x2temp */
            $groupLinks = Yii::app()->db->createCommand()->select('groupId')->from('x2_group_to_user')->where('userId=' . Yii::app()->user->getId())->queryColumn();
            if (!empty($groupLinks)) {
                $condition .= ' OR assignedTo IN (' . implode(',', $groupLinks) . ')';
            $condition .= ' OR (visibility=2 AND assignedTo IN
                (SELECT username FROM x2_group_to_user WHERE groupId IN
                (SELECT groupId FROM x2_group_to_user WHERE userId=' . Yii::app()->user->getId() . '))))';
        } else {
            $condition = '';
        // Optional search parameter for autocomplete
        $qterm = isset($_GET['term']) ? $_GET['term'] . '%' : '';
        $static = isset($_GET['static']) && $_GET['static'];
        $weblist = isset($_GET['weblist']) && $_GET['weblist'];
        $result = Yii::app()->db->createCommand()
                ->select('id,name as value')
                        ($static ? 'type="static" AND ' : '') .
                        ($weblist ? 'type="weblist" AND ' : '') .
                    AND name LIKE :qterm' . $condition, array(':qterm' => $qterm))
                ->order('name ASC')
        echo CJSON::encode($result);




7.0 Release Notes

22 October 2018 - 02:00 PM



  • General Changelog / Developer Notes

    • Expanded Listability

      • List capabilities for Accounts, Opportunities, Leads, so all 3 can now can be curated into smaller data sets, added into campaigns at any time.

      • Ability to campaign using list made from Contacts, Accounts, Opportunities, and Leads.

    • New Conversion Tool

      • Convert Lead to Contact - for additional opportunities

      • Convert Contact to Lead - for new opportunities

      • Assign Leads and Contacts to Accounts - for account based management.

    • Multiple levels of Unsubscribe

      • Changed the Unsubscribe Page so that it will now scan for the text “(PLACE_OPP)” on your unsubscribe page and replace it with a list of options for unsubscribing. If it can’t find this text it will mark the lead or contact “doNotEmail” and echo out the text “You will no longer receive emails from this sender.”

    • Improved email send performance - bulk custom email delivery improved performance up to 10X pending hosting provider, database and network performance

    • Microsoft Outlook ® calendar integration

    • Miscellaneous bug fixes

      • Addressed issues with google calendar sync fixing when calendar had too many events the connection would time out


We are pleased to announce the release of X2CRM Open Source version 7.0. This release features a number of new capabilities including major updates to our Marketing Automation, new listing capabilities, conversion options, and a new outlook calendar integration.


Listibility for all! The list tools are now included within the Accounts, Opportunities, and Leads modules. Build dynamic or static lists as needed, then separate your data the way you want.


X2CRM has expanded Campaign usability. Campaigns can now be run using lists from Accounts, Opportunities, and Leads. On top of that, we have added a suppression list and multiple levels of unsubscribe for marketing teams to implement.


A new Outlook for X2! Your Microsoft Outlook calendar can now be synced to X2CRM so you never miss an event or meeting, and your events associated with customers and prospects are tracked.


7.0 ushers in a new era for open source CRM. Please provide comments, feedback and requests within our community forums. As always, thank you for your support.


The X2Engine Team.