EspoCRM open source CRM application

Overview

EspoCRM

EspoCRM is an Open Source CRM (Customer Relationship Management) software that allows you to see, enter and evaluate all your company relationships regardless of the type. People, companies or opportunities - all in an easy and intuitive interface.

It's a web application with a frontend designed as a single page application and REST API backend written in PHP.

Download the latest release from our website.

Requirements

  • PHP 7.3 and later (with pdo, json, gd, openssl, zip, imap, mbstring, curl extensions);
  • MySQL 5.7 (and later), or MariaDB 10.1 (and later).

For more information about server configuration see this article.

Documentation

Documentation for administrators, users and developers is available here.

How to report a bug

Create an issue here or post on our forum.

How to install a stable version

Download the latest version. See the instructions about installation.

Development

How to contribute

Before we can merge your pull request you need to accept our CLA here. It's very simple to do.

Branches:

  • hotfix/* – upcoming maintenance release; fixes should be pushed to this branch;
  • master – develop branch; new features should be pushed to this branch;
  • stable – last stable release.

License

EspoCRM is published under the GNU GPLv3 license.

Comments
  • How to create field like in TASKS

    How to create field like in TASKS

    Hello. I want to create new module, but i can't create field to choose records from many modules. For example in Tasks i have field where i can choose Account, contact, lead, case and etc, but i don't know how to create that one.

    opened by buzzard10 37
  • Portal: Bad server response

    Portal: Bad server response

    I tried with upgrade and tried with a fresh 4.00 download but the result is the same "bas server response" when it came to this link {site_root}/api/v1/Portal/?maxSize=20&offset=0&sortBy=name&asc=true some errors occurs:


    ( ! ) Strict standards: Declaration of Espo\Repositories\Portal::afterSave() should be compatible with Espo\Core\ORM\Repositories\RDB::afterSave(Espo\ORM\Entity $entity, array $options = Array) in C:\wamp\www\crm\EspoCRM4\application\Espo\Repositories\Portal.php on line 37 Call Stack

    Time Memory Function Location

    1 0.0005 247088 {main}( ) ..\index.php:0 2 0.0056 603800 Espo\Core\Portal\Application->__construct( ) ..\index.php:38 3 0.0418 4824864 Espo\ORM\EntityManager->getEntity( ) ..\Application.php:48 4 0.0418 4824960 Espo\ORM\EntityManager->getRepository( ) ..\EntityManager.php:144 5 0.0418 4825072 Espo\Core\ORM\RepositoryFactory->create( ) ..\EntityManager.php:162 6 0.0418 4825176 Espo\ORM\RepositoryFactory->create( ) ..\RepositoryFactory.php:38 7 0.0421 4825984 class_exists ( ) ..\RepositoryFactory.php:50 8 0.0421 4826320 spl_autoload_call ( ) ..\RepositoryFactory.php:50 9 0.0421 4826368 Composer\Autoload\ClassLoader->loadClass( ) ..\RepositoryFactory.php:0 10 0.0423 4826504 Composer\Autoload\includeFile( ) ..\ClassLoader.php:301 11 0.0425 4838792 include( 'C:\wamp\www\crm\EspoCRM4\application\Espo\Repositories\Portal.php' ) ..\ClassLoader.php:412

    ( ! ) Fatal error: Uncaught exception 'Espo\Core\Exceptions\NotFound' in C:\wamp\www\crm\EspoCRM4\application\Espo\Core\Portal\Application.php on line 51 ( ! ) Espo\Core\Exceptions\NotFound: in C:\wamp\www\crm\EspoCRM4\application\Espo\Core\Portal\Application.php on line 51 Call Stack

    Time Memory Function Location

    1 0.0005 247088 {main}( ) ..\index.php:0 2 0.0056 603800 Espo\Core\Portal\Application->__construct( ) ..\index.php:38

    bug 
    opened by eymen-elkum 37
  • Issue with uploading files - bug?

    Issue with uploading files - bug?

    Hello. From time to time we're observing problems with attaching files to tasks. We saved some logs.

    [2018-03-20 16:44:36] Espo.ERROR: API [GET]:., Params:Array ( ) , InputData: - [] [] [2018-03-20 16:44:36] Espo.ERROR: Display Error: , Code: 404 URL: /?entryPoint=image&id=5aa1335341a674cda&size=medium [] [] [2018-03-20 16:44:36] Espo.ERROR: Uncaught Exception Slim\Exception\Stop: "" at /home/user/domains/example.com/public_html/vendor/slim/slim/Slim/Slim.php line 1022 {"exception":"[object] (Slim\Exception\Stop(code: 0): at /home/user/domains/example.com/public_html/vendor/slim/slim/Slim/Slim.php:1022)"} [] [2018-03-20 17:07:49] Espo.ERROR: API [GET]:., Params:Array ( ) , InputData: - [] [] [2018-03-20 17:07:49] Espo.ERROR: Display Error: , Code: 404 URL: /?entryPoint=image&id=5ab13d0b3759eb2bd&size=medium [] [] [2018-03-20 17:07:49] Espo.ERROR: Uncaught Exception Slim\Exception\Stop: "" at /home/user/domains/example.com/public_html/vendor/slim/slim/Slim/Slim.php line 1022 {"exception":"[object] (Slim\Exception\Stop(code: 0): at /home/user/domains/example.com/public_html/vendor/slim/slim/Slim/Slim.php:1022)"} []

    Description:

    1. I attached photo to task
    2. I saw thumbnail of photo in EspoCRM
    3. I saved task
    4. My coworker open that task and saw icon of broken file instead of photo.
    5. After i reload website i saw that image disappeared
    opened by buzzard10 26
  • Import should use bulk insert

    Import should use bulk insert

    Currently, import uses saveEntity which creates single row insert at a time.

    Problem

    If I am importing say 100,000 lead, for example, which contains emailAddresses and phoneNumbers

    • 100,000 insert queries to insert lead
    • 100,000 insert queries to insert emailAddresses
    • 100,000 insert queries to insert phoneNumbers
    • 100,000 insert queries to insert entity_email_address
    • 100,000 insert queries to insert entity_phone_numbers

    Total of 500,000 insert queries are needed to be run ignoring the inserts for process history records, relations etc... This makes import painfully slow.

    My research on speed on inserts is here: https://stackoverflow.com/a/57452308

    Proposed: Use bulk insert with multiple rows

    Example,

    Insert into `lead` (first_name, last_name) values 
    ('a', 'b'),  -- row 1
    ('c', 'd'),  -- row 2
    ('e', 'f');  -- row 3
    

    For bulk update use case keyword.

    Example,

    update `lead` set first_name = (
      CASE id
        WHEN '5f232342d' THEN 'a'
        WHEN '243242dsf' THEN 'b'
      END
      ) WHERE id IN ('5f232342d', '243242dsf');
    

    FYI, you need to think about how beforeSave, afterSave and hooks will work also

    opened by theBuzzyCoder 25
  • Continuous deployment (build process) setup

    Continuous deployment (build process) setup

    Once we clone the repo we can work in the development environment and generate the build.

    Once the build is deployed on the production, how do we deploy next changes to the server without breaking the code or losing the data?

    I would like to set up the staging and the production and frequently would like to import the data from the production to the staging.

    I could not find anything regarding this in the documentation or on the forum.

    question 
    opened by tannakartikey 25
  • Export in idle

    Export in idle

    When selected all results (on the list view) and the total number of records is greater than a specific threshold value, then the export will be processed by cron/daemon.

    It will allow to export very large numbers of records.

    improvement 
    opened by yurikuzn 23
  • Calendar event times changing unexpectedly during save

    Calendar event times changing unexpectedly during save

    Describe the bug When I save a record that is type 'Event', the end time changes unexpectedly. It looks like the time is being recalculated based on the start time and the duration. The problem is intermittent - saving the same record over and over will produce both results: correct and incorrect. For example, setting an event from 0900 to 1200 and then changing the times to 0859 and 1200 will often result in the record storing 0859 and 1159, which is wrong by 1 minute. The duration was set to 3 hours, and it looks like Espo was trying to maintain a 3-hour event instead of allowing me to set it to 3 hours and 1 minute.

    To Reproduce I added debug statements to application/Espo/ORM/Repository/RDBRepository.php as follows:

     151     public function save(Entity $entity, array $options = []): void
     152     {
     153         $this->processCheckEntity($entity);
     154         $type = $entity->getEntityType();
     155
     156         if ($entity instanceof BaseEntity) {
     157             $entity->setAsBeingSaved();
     158         }
     159
     160         if($type == "Session")
     161           $GLOBALS['log']->debug("session save 1", [$entity->get('dateStart'), $entity->get('dateEnd')]);
     162         if (empty($options['skipBeforeSave']) && empty($options['skipAll'])) {
     163
     164
     165           $this->beforeSave($entity, $options);
     166
     167         }
     168
     169         if($type == "Session")
     170           $GLOBALS['log']->debug("session save 2", [$entity->get('dateStart'), $entity->get('dateEnd')]);
     171         $isSaved = false;
    

    I also added debug statements to my beforeSave hook as follows:

     44   public function beforeSave(Entity $session, array $options = array()) {
     45     $GLOBALS['log']->debug('session beforeSave 1', [$session->get("dateStart"), $session->get("dateEnd")]);
    

    This is what happened in the log when I tried to save a record with a start and end time of 1459 and 1930, respectively:

    [2022-05-11 16:14:02] DEBUG: session save 1 ["2022-05-10 14:59:00","2022-05-10 19:30:00"] []
    [2022-05-11 16:14:02] DEBUG: session beforeSave 1 ["2022-05-10 14:59:00","2022-05-10 19:29:00"] []
    [2022-05-11 16:14:02] DEBUG: session save 2 ["2022-05-10 14:59:00","2022-05-10 19:29:00"] []
    

    As you can see, the time changed by 1 minute before the code in my hook had a chance to execute. I thought my hook was causing the problem, but I have now seen that the record is entering the hook with the wrong value.

    Expected behavior I expect the end time to be what I manually set instead of being tied to the duration. The duration should be calculated based only on the times, not the other way around.

    EspoCRM version 7.1.3

    Additional context I first noticed this issue in the GUI. My users would set times and then they would be wrong, which was shown in the stream as well. Also, the change can be more than 1 minute; sometimes it can be 10 or even 20 minutes, depending on the steps in the duration field. There appears to be a type of 'rounding' going on. After fighting with it in the GUI, I started setting the values programmatically through a Job, but that didn't fix the problem either. After adding debug statements, it seems that the field is being changed somewhere in the parent beforeSave hook for the entity, but I'm not really sure.

    opened by bandtank 21
  • Let's talk about security in EspoCRM

    Let's talk about security in EspoCRM

    Hello guys I think Espo is great, but You should consider few things about security. 

    1. Two steps verification for login screen (Google Authenticator, codes in e-mail, DUO security, anything)
    2. Logs for bad logins - Espo should log every single request from login screen
    3. Captcha for login screen - Without captcha, bots can attack using brute force method without any knowledge of espo administator
    4. Blocking bad logins by IP - same thing like in point 3
    5. Login tokens - even if i turn on notifications about new tokens, if anyone try to connect by API, i don't have any alert
    6. Logs for API - I think there should be any logs who and when tried to connect using API
    7. White list for API - I think also that before anyone try to connect by api to Espo, He should add his IP to white list in the first place

    I see potential in Espo. Really, i can move all information about company to Espo, but we should have more security options. In few months in EU We'll be have new law regarding to data processing and security, those thing above should be good shield/firewall for our data.

    opened by buzzard10 21
  • Refreshing related records after updating

    Refreshing related records after updating

    I'm working on a quick prototype, extending the Formula functionality being able to process more hooks. See attached Formula.php hook.

    See added functionality here:

    In my formula, I trigger the recalculation of a related record, using an update of the record:

    begin:afterSave
    $dt = datetime\now();
    $s = datetime\format($dt, 'Europe/Amsterdam', 'MM/DD/YYYY hh:mm:ss');
    $jr = jaar;
    $rec_id = record\findOne('Nascholingstotaal', 
                                 'createdAt', 'asc', 
                                 'jaar=', $jr, 'contactId=', contactId);
    record\update('Nascholingstotaal', $rec_id, 
                  'description', string\concatenate("AFTER SAVE ", $s)
                  );
    end:afterSave
    
    begin:afterRemove
    $dt = datetime\now();
    $s = datetime\format($dt, 'Europe/Amsterdam', 'MM/DD/YYYY hh:mm:ss');
    $jr = jaar;
    $rec_id = record\findOne('Nascholingstotaal', 
                                 'createdAt', 'asc', 
                                 'jaar=', $jr, 'contactId=', contactId);
    record\update('Nascholingstotaal', $rec_id, 
                  'description', string\concatenate("AFTER REMOVE ", $s)
                  );
    end:afterRemove
    

    The related record 'Nascholingstotaal' is recalculated nicely. The following formula is being processed:

    $ds = description;
    $jr = jaar;
    $contact_id = contactId;
    
    $ids = record\findRelatedMany('Contact', contactId, 
                                  'nascholingen', 1000, 
                                  'createdAt', 'asc');
                                  
    $i = 0;
    $n = array\length($ids);
    $comma = "";
    
    $totaal_dagen = 0;
    while(
        $i < $n,
        $comma = ", ";
        $nascholing_id = array\at($ids, $i);
        $rec_jr = record\attribute('Nascholing', $nascholing_id, 'jaar');
        ifThen($rec_jr == $jr,
            $dagen = record\attribute('Nascholing', $nascholing_id, 'aantalDagen');
            $totaal_dagen = $totaal_dagen + $dagen;
        );
        $i = $i + 1;
    );
    
    dagen = $totaal_dagen;
    

    However, the related entity is Nascholingstotaal is not refreshed on the screen. See image.

    image

    So, the blue record in 'Nascholing' has just been updated. All went well, all formulas have been calculated. Totals have been recalculated; however, it doesn't show. See the red rectangle.

    When I manually refresh the screen, it does get the right result:

    It is possible to trigger a refresh from the PHP backend code?

    opened by hdijkema 20
  • Can't install - MariaDB, PHP7.4 Error

    Can't install - MariaDB, PHP7.4 Error

    [2021-06-16 09:09:34] ALERT: Rebuild database fault: PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'lead (id VARCHAR(24) NOT NULL COLLATEutf8mb4_unicode_ci, deleted TINYINT(...

    Webserver: | Apache/2.4.38 (Debian) PHP-Version: | 7.4.20 MySQL-Server-Version: | 5.5.5-10.3.27-MariaDB-0+deb10u1

    opened by Kapsonfire-DE 19
  • Emails from Gmail are being redownloaded after awhile.

    Emails from Gmail are being redownloaded after awhile.

    The emails from Gmail, that are already on the system, are being re-downloaded after some time, with a different Unique ID. We are having a lot of duplicated emails.

    opened by rodrigoscoelho 19
  • User Interface: Add option to set Records Per Kanban

    User Interface: Add option to set Records Per Kanban

    Is your feature request related to a problem? Please describe. Kanban records are shown based on Records Per Page (Small) which reference records of related entity (related records) therefore there is a limitation to how many records should be shown in the kanban view based on provided value in Records Per Page (Small).

    Describe the solution you'd like I would love if in the User Interface an option could be added as **Records Per Kanban *** which would allow to set how many records to show in a kanban view. this way we have a better control on how many records should be listed on related entities (Records Per Page (Small) *) and also have an option to set how many records should be displayed on kanban view through the new option Records Per Kanban

    Describe alternatives you've considered currently there is no option available to allow such control.

    Additional context Add any other context or screenshots about the feature request here.

    opened by rabiibrahimi 0
  • Allow for setting additional database parameters during installation

    Allow for setting additional database parameters during installation

    Is your feature request related to a problem? Please describe.

    Running a fresh install does not provide entering specific DB params

    Describe the solution you'd like

    Allow these setting during install, possibly hidden in an "advanced" section.

    $params['platform']
    $params['sslCA']
    $params['sslCert']
    $params['sslKey']
    $params['sslCAPath']
    $params['sslCipher']
    $params['sslVerifyDisabled']
    
    

    Describe alternatives you've considered

    Hardcoding in /resources/defaults/config.php

    Additional context

    opened by analystcmyk 0
  • Formula enhancements

    Formula enhancements

    Is your feature request related to a problem? Please describe. Currently formula works only before save, we often need to run formula after save, I have found workarounds but all are not like if we simply have after save formula, will be clearer for clients. Another point is the formatting of formula, I wonder if having them stored in files would be better than json as encoded strings, something like Call/afterSave.frml would be great, large projects will be managed their code using git, and it is very useful to track the formula changes in clear way.

    Describe the solution you'd like I strongly hope this implemented into the core directly, I can help by contributing, if you dont like the idea then will think of making an extension, but will be more difficult.

    opened by eymen-elkum 2
  • Multiple Kanban View

    Multiple Kanban View

    Is your feature request related to a problem? Please describe. We are using multiple enum fields to track the progress on account entity (same goes for another two entities) we keep switching each time to a different field to show the Kanban view, e.g today we might be using Account state enum field to see progress of the state of each account and at the same day we might need to switch to see the Kanban view based on another enum field which would be Type. Because account goes through different states / types and statuses we need to be able to switch to a different enum field for the Kanban to be able to monitor where the account is at different states / stages / statuses etc

    Describe the solution you'd like I would love if the Kanban configuration on the entity Manager would be available on the list view of the entity. when choosing which status field to show on the Kanban and what field to ignore on the Kanban if these two field could be controlled and used on the entity list view when switching to the Kanban view.

    Describe alternatives you've considered Currently as administrator i need to keep changing the status field of the Kanban based on what field we use to show the Kanban view. Please see attached a screenshot of what i expect this feature to look like. i am sure the Developer could make it more elegant.

    Screenshot 2022-11-07 at 10 48 13

    Additional context Add any other context or screenshots about the feature request here.

    opened by rabiibrahimi 9
  • composeMailToLink separator

    composeMailToLink separator

    https://github.com/espocrm/espocrm/blob/99670c7b3de4d253110b840f3834d170f5148307/client/src/email-helper.js#L515

    Could we get an enum/varchar option to choose the external client separator? Depending on your computer/outlook regional settings Outlook uses ";" as a separator and doesn't accept ",".

    Thanks

    opened by Kharg 0
Releases(7.2.7)
  • 7.2.7(Nov 4, 2022)

  • 7.2.6(Oct 23, 2022)

  • 7.2.5(Oct 20, 2022)

  • 7.2.4(Sep 19, 2022)

  • 7.2.3(Sep 14, 2022)

  • 7.2.2(Sep 12, 2022)

  • 7.2.1(Sep 12, 2022)

  • 7.2.0(Sep 9, 2022)

    Enhancements:

    • Detail view tabs https://github.com/espocrm/espocrm/issues/2379
    • Bottom panel tabs https://github.com/espocrm/espocrm/issues/2384
    • Mass Update: Ability to add/remove items https://github.com/espocrm/espocrm/issues/2310
    • Import: Errors panel https://github.com/espocrm/espocrm/issues/2372
    • Email: Custom fields support https://github.com/espocrm/espocrm/issues/2366
    • Separate view for stream note records https://github.com/espocrm/espocrm/issues/2398
    • Varchar/Multi-enum/Array fields: Pattern parameter to check a value against https://github.com/espocrm/espocrm/issues/2360
    • Command renaming custom entity type https://github.com/espocrm/espocrm/issues/2318

    Improvements:

    • Shortcut keys https://github.com/espocrm/espocrm/issues/2393
    • Theme improvements https://github.com/espocrm/espocrm/issues/2386
    • New Glass theme https://github.com/espocrm/espocrm/issues/2392
    • Activities panel: Create icon buttons https://github.com/espocrm/espocrm/issues/2399
    • Ability to select multiple records on the list view by holding the shift key https://github.com/espocrm/espocrm/issues/2410
    • Ability to reset custom sorting https://github.com/espocrm/espocrm/issues/2376
    • Layout manager: Ability to hide a label in the list column header https://github.com/espocrm/espocrm/issues/2359
    • Layout manager: Ability to specify list column width in pixels https://github.com/espocrm/espocrm/issues/2358
    • Stream: Ability to customize Attachments and Post fields https://github.com/espocrm/espocrm/issues/2357
    • Server-side validation for uploaded file extensions https://github.com/espocrm/espocrm/issues/2356
    • No need for webserver access to node_modules in developer mode https://github.com/espocrm/espocrm/issues/2352
    • Uploading files in chunks https://github.com/espocrm/espocrm/issues/2329

    Changes:

    • Import: Field validation https://github.com/espocrm/espocrm/issues/2373
    • Field parameter readOnly to be taken into account server-side https://github.com/espocrm/espocrm/issues/2375

    Security:

    • Security headers for client page https://github.com/espocrm/espocrm/issues/2402
    • More strict server-side field validation https://github.com/espocrm/espocrm/issues/2374

    Front-end:

    • Ability to define custom dropdown actions for quick view modal in metadata https://github.com/espocrm/espocrm/issues/2353

    All issues: https://github.com/espocrm/espocrm/milestone/136?closed=1

    Possible compatibility issues

    Rest API

    Fields that are set as read-only (field parameter, not dynamic logic) will be ignored in POST and PUT requests. Example: When sending a PUT request to update a read-only field, it won't update anymore.

    If you are sending an enum value that is not one of the available options, it will cause a validation error.

    Example 1: Sending a status 'Success' when available values are 'Planned', 'Held', 'Not Held'. Example 2: Sending a value null when the empty value is not in the list of available options. Example 3: Sending a value 'closed won' when the available value is 'Closed Won'.

    Omitting an enum field value in a POST request when the field does not have a default value will cause a validation error.

    Source code(tar.gz)
    Source code(zip)
    EspoCRM-7.2.0.zip(35.04 MB)
  • 7.1.11(Aug 12, 2022)

  • 7.1.10(Aug 2, 2022)

  • 7.1.8(Jun 30, 2022)

  • 7.1.7(May 24, 2022)

  • 7.1.6(May 23, 2022)

  • 7.1.5(May 13, 2022)

  • 7.1.4(May 9, 2022)

  • 7.1.3(Apr 27, 2022)

  • 7.1.1(Apr 22, 2022)

  • 7.1.0(Apr 20, 2022)

    Compatibility:

    • Added PHP 8.1 support https://github.com/espocrm/espocrm/issues/2211
    • Dropped PHP 7.3 support https://github.com/espocrm/espocrm/issues/2168

    Enhancements:

    • Dark theme https://github.com/espocrm/espocrm/issues/2185
    • Formula sandbox https://github.com/espocrm/espocrm/issues/2201
    • Access info email without password https://github.com/espocrm/espocrm/issues/2213
    • Ability to send a password change link to a specific user https://github.com/espocrm/espocrm/issues/2215
    • Formula: Array functions indexOf, removeAt, unique https://github.com/espocrm/espocrm/issues/2256
    • Formula: json\encode function https://github.com/espocrm/espocrm/issues/2233
    • Formula: Object functions https://github.com/espocrm/espocrm/issues/2232
    • Formula: Null coalescing operator https://github.com/espocrm/espocrm/issues/2230
    • Formula: number\parseInt and number\parseFloat functions https://github.com/espocrm/espocrm/issues/2229
    • Formula: string\split function https://github.com/espocrm/espocrm/issues/2227

    Improvements:

    • Export in idle https://github.com/espocrm/espocrm/issues/2197
    • Mass action processing in idle https://github.com/espocrm/espocrm/issues/2186
    • Mass Email: Supporting custom entity types as recipients https://github.com/espocrm/espocrm/issues/2203
    • Using CSS variables for colors https://github.com/espocrm/espocrm/issues/2184
    • Emails: Relationship with Tasks https://github.com/espocrm/espocrm/issues/2272
    • Formula: Check syntax button https://github.com/espocrm/espocrm/issues/2199
    • Config parameter 'Records per page (Select)' https://github.com/espocrm/espocrm/issues/2277
    • Utilizing full-text search in link fields autocomplete and email address lookup https://github.com/espocrm/espocrm/issues/2278
    • Showing own user as a suggestion for assigned user field if input is empty https://github.com/espocrm/espocrm/issues/2281
    • Own user at first position in list when selecting user https://github.com/espocrm/espocrm/issues/2275
    • Image preview: Ability to switch images with arrow keys https://github.com/espocrm/espocrm/issues/2271
    • Ability to export/import roles https://github.com/espocrm/espocrm/issues/2262
    • Error messages not closing automatically https://github.com/espocrm/espocrm/issues/2259
    • Float field: Decimal Places parameter https://github.com/espocrm/espocrm/issues/2225
    • Meetings/Calls: Duplicate action from modal view https://github.com/espocrm/espocrm/issues/2224
    • Currency field: Ability to disable currency conversion for a specific field https://github.com/espocrm/espocrm/issues/2223
    • Ability to collapse Compose Email modal https://github.com/espocrm/espocrm/issues/2222
    • Ability to run Espo in non-developer-mode right from repository https://github.com/espocrm/espocrm/issues/2254

    Codebase:

    • PHPStan level 8 https://github.com/espocrm/espocrm/issues/2251

    All issues: https://github.com/espocrm/espocrm/milestone/130?closed=1

    Source code(tar.gz)
    Source code(zip)
    EspoCRM-7.1.0.zip(33.45 MB)
  • 7.0.10(Mar 29, 2022)

    Bug-fixes:

    • Admin don't have access to email folders of another user https://github.com/espocrm/espocrm/issues/2248
    • Kanban header not sliding with cards container when more records shown https://github.com/espocrm/espocrm/issues/2238
    • Forward email not copying attachments https://github.com/espocrm/espocrm/issues/2226
    • Follow button shows incorrectly after edit is cancelled https://github.com/espocrm/espocrm/issues/2207
    • Entity Manager: Empty 'Ignored groups in Kanban view' not saved https://github.com/espocrm/espocrm/issues/2205

    All issues: https://github.com/espocrm/espocrm/milestone/131?closed=1

    Source code(tar.gz)
    Source code(zip)
    EspoCRM-7.0.10.zip(33.10 MB)
  • 7.0.9(Jan 21, 2022)

    Improvements:

    • Kanban: Horizontal scroll improvements https://github.com/espocrm/espocrm/issues/2176
    • Kanban: Create buttons in groups https://github.com/espocrm/espocrm/issues/2175
    • Meetings/Calls: Ability to send invitations from modal view https://github.com/espocrm/espocrm/issues/2172

    All issues: https://github.com/espocrm/espocrm/milestone/129?closed=1

    Source code(tar.gz)
    Source code(zip)
    EspoCRM-7.0.9.zip(32.95 MB)
  • 7.0.8(Oct 26, 2021)

  • 7.0.7(Oct 14, 2021)

  • 7.0.6(Oct 13, 2021)

  • 7.0.5(Oct 12, 2021)

  • 7.0.4(Oct 11, 2021)

  • 7.0.3(Oct 6, 2021)

  • 7.0.2(Oct 6, 2021)

  • 7.0.1(Oct 4, 2021)

Owner
EspoCRM - Open Source CRM
Join the project
EspoCRM - Open Source CRM
OroCRM is an open source Client Relationship Management (CRM) application

OroCRM is an open source Client Relationship Management (CRM) application that allows to create a 360° view of your customers across multiple channels, organize the sales pipeline, manage account and contact information, communicate with customers, run marketing campaigns and track campaign performance.

Oro, Inc. 611 Jan 3, 2023
DaybydayCRM an open-source CRM, to help you keep track of your daily workflow.

====================== DaybydayCRM is an everyday customer relationship management system (CRM) to help you keep track of your customers, tasks, appoi

Casper Bottelet 2.1k Jan 3, 2023
CRM project that I developed with ReactJS and Laravel 8.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Harun Doğdu 4 Nov 28, 2021
Dolibarr ERP & CRM is a modern software package that helps manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…).

Dolibarr ERP CRM is a modern software package to manage your company or foundation activity (contacts, suppliers, invoices, orders, stocks, agenda, accounting, ...). It is open source software written in PHP and designed for small and medium businesses, foundations and freelancers. You can freely install, use and distribute it as a standalone application or as a web application to use it from every internet access and media.

Dolibarr ERP & CRM 3.7k Jan 7, 2023
Our team created for you one of the most innovative CRM systems that supports mainly business processes and allows for customization according to your needs. Be ahead of your competition and implement YetiForce!

We design an innovative CRM system that is dedicated for large and medium sized companies. We dedicate it to everyone who values open source software,

YetiForce Sp. z o.o. 1.3k Jan 8, 2023
Customer Relationship Management (CRM) portal using PHP Codeigniter 4 & Tailwind CSS framework.

CRM Portal Customer Relationship Management (CRM) portal using PHP Codeigniter 4 & Tailwind CSS framework. Screenshots User (Dashboard) Admin (Employe

Dawood Khan Masood 5 Feb 2, 2022
ZAP CRM is Customer Relationship Management portal built using PHP Codeigniter 4 & Tailwind CSS framework.

ZAP CRM ZAP CRM is Customer Relationship Management portal built using PHP Codeigniter 4 & Tailwind CSS framework. Screenshots User (Dashboard) Admin

Dawood Khan Masood 5 Feb 2, 2022
Emoncms is an open-source web application for processing, logging and visualising energy, temperature and other environmental data and is part of the OpenEnergyMonitor project.

Emoncms is an open-source web application for processing, logging and visualising energy, temperature and other environmental data and is part of the OpenEnergyMonitor project.

Emoncms 1.1k Dec 22, 2022
Mibew Messenger - open-source live support application written in PHP and MySQL

Mibew Messenger is an open-source live support application written in PHP and MySQL. It enables one-on-one chat assistance in real-time directly from your website.

Mibew Messenger 443 Dec 13, 2022
phpIPAM is an open-source web IP address management application.

phpIPAM is an open-source web IP address management application. Its goal is to provide light and simple IP address management application. It is ajax-based using jQuery libraries, it uses php scripts and javascript and some HTML5/CSS3 features, so some modern browser is preferred to be able to display javascript quickly and correctly.

Miha Petkovsek 1.8k Dec 31, 2022
Open Source Point of Sale is a web based point of sale application written in PHP using CodeIgniter framework.

Open Source Point of Sale is a web based point of sale application written in PHP using CodeIgniter framework. It uses MySQL as the data back end and has a Bootstrap 3 based user interface.

opensourcepos 2.7k Jan 2, 2023
OpenEMR is a Free and Open Source electronic health records and medical practice management application

OpenEMR is a Free and Open Source electronic health records and medical practice management application. It features fully integrated electronic health records, practice management, scheduling, electronic billing, internationalization, free support, a vibrant community, and a whole lot more. It runs on Windows, Linux, Mac OS X, and many other platforms.

OpenEMR 2.1k Jan 9, 2023
Open Source Voucher Management System is a web application for manage voucher. used PHP with Laravel Framework and use MySQL for Database.

Voucher Management System is a web application for manage voucher. You can create and manage your voucher. Voucher Management System is used PHP with Laravel Framework and use MySQL for Database.

Artha Nugraha Jonar 34 Sep 17, 2022
Open source knowledge base application for Teams

Opensource knowledge base application for Teams. Introduction Opus is a place for your team to document who you are, what you do and how you do it. It

Zeeshan Ahmad 1.2k Jan 6, 2023
Simple Laravel Invoice Generator Sling — open-source web application that helps you create invoices and track income.

Simple Laravel Invoice Generator Sling — open-source web application that helps you create invoices and track income. Table of Contents About

Ray Icemont 4 Nov 22, 2022
DomainMOD is an open source application written in PHP & MySQL used to manage your domains and other internet assets in a central location

DomainMOD is an open source application written in PHP & MySQL used to manage your domains and other internet assets in a central location. DomainMOD also includes a Data Warehouse framework that allows you to import your web server data so that you can view, export, and report on your live data.

DomainMOD 349 Jan 8, 2023
📛 An open source status page system for everyone.

Cachet is a beautiful and powerful open source status page system. Overview List your service components Report incidents Customise the look of your s

Cachet 13k Jan 3, 2023
Create Your Own Broadcast Network With AVideo Platform Open-Source. OAVP OVP

Audio Video Platform AVideo is a term that means absolutely nothing, or anything video. Since it doesn't mean anything the brand simply is identifiabl

World Wide Broadcast Network 1.7k Jan 8, 2023
classroombookings - open source room booking system for schools.

This is a web-based room booking system for schools and is designed to be as easy to use as possible. Set up your bookable rooms, day schedule and timetable for the year. Add user accounts, and allow them to make and manage bookings from anywhere.

Craig A Rodway 127 Nov 20, 2022