Giter VIP home page Giter VIP logo

espocrm's Introduction

EspoCRM

PHPStan level 8

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 a REST API backend written in PHP.

Download the latest release from our website. Release notes and release packages are available at Releases on GitHub.

Screenshot

Demo

You can try the CRM on an online demo.

Requirements

  • PHP 8.1 - 8.3;
  • MySQL 5.7 (and later), or MariaDB 10.2 (and later);
  • PostgreSQL 15 (and later) (beta, official support soon).

For more information about server configuration see this article.

Documentation

See the documentation for administrators, users and developers.

Bug reporting

Create a GitHub issue or post on our forum.

Installing stable version

See installation instructions:

Development

See the developer documentation.

We highly recommend using an IDE for development. The backend codebase follows SOLID principles, utilizes interfaces, static typing and generics. We recommend to start learning EspoCRM from the Dependency Injection article in the documentation.

Metadata plays an integral role in the EspoCRM application. All possible parameters are described with a JSON Schema, meaning you will have autocompletion in the IDE. You can also find the full metadata reference in the documentation.

Community & Support

If you have a question regarding some features, need help or customizations, want to get in touch with other EspoCRM users, or add a feature request, please use our community forum. We believe that using the forum to ask for help and share experience allows everyone in the community to contribute and use this knowledge later.

License

EspoCRM is published under the GNU AGPLv3 license.

Contributing

Before we can merge your pull request, you need to accept our CLA here. See contributing guidelines.

Branches:

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

Language

If you want to improve existing translation or add a language that is not available yet, you can contribute on our POEditor project. See instructions here. It may be reasonable to let us know about your intention to join the POEditor project by posting on our forum or via the contact form on our website.

Changes on POEditor are usually merged to the GitHub repository before minor releases.

espocrm's People

Contributors

alasdaircr avatar arkadiyasuratov avatar aureliosilver avatar barwi avatar beppe9000 avatar dependabot[bot] avatar djgera avatar eymen-elkum avatar forestsoft-de avatar grzegorzgie avatar igora100 avatar karthik-uc avatar kharg avatar martinekpavel avatar mozkomor05 avatar o-data avatar panuweb avatar patchranger avatar pomazanbohdan avatar rabiibrahimi avatar rodrigoscoelho avatar sarmizegetusaa avatar sebdoido avatar suchafuriousdeath avatar suparpat avatar tanyalei avatar tmachyshyn avatar unitorzero avatar yunga91 avatar yurikuzn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

espocrm's Issues

Uncaught TypeError: Cannot read property 'match' of undefined

Getting error Uncaught TypeError: Cannot read property 'match' of undefined in console with incrementing number in front of it. No link is working. No clue what is happening, just mentioning. To be continued...

In Iron (Chromium) Version 37.0.2000.0 (290621) (64-bit)
Firefox 37.0.2: OK

New Theme Not Saving Under User Interface

Great CRM! I've been using espoCRM since 3.4 and love it. I downloaded 3.6.2 and noticed the new Theme feature saves only in Preferences, not within User Interface. Keep up the great work!

LDAP support for hierachies

We tested the LDAP support (against MS Active Directory) and found some limitations which prevent us from using this feature in real live. Maybe it is a misconfig/misunderstanding from my side - maybe the functionallity is not yet implemented as we expect. We only get it running if the users are stored in the same ou.

User name

username attribute should be configurable (e.g. for Active Directory it is samAccountName not CN)

tree search

at the moment the user search and bind for the end user for auth is done in the base DN only but most organisations have their users in a tree of OUs. I tried to work around this restriction by switching from Account Canonical Form=Dn to Principal but I was not able to succesfully authenticate as user principle name (e.g. [email protected])
So either Espo requires to search for the user first or we need to get the principal auth working

Login Filter by group membership

It is quite uncommon to expect special attributes on the user objects for filtering allowed users. Best practice is using group memberships (object: grouOfNames attirbutes on user object: memberOf). Is there a way to configre this?

Enhancements

Another nice feature (but not that urgent): sync users, groups and group memberships from LDAP
Users should have an unique external attribute to be used as foreign key to sync with (e.g.SID or employeeID)

Urgent Issue: Issue While Installing ESPO Crm 3.1.1.

Hi
We are facing an issue while installing ESPOCRM 3.1.1. After Providing a Database detail it shows us a Ajax Failed Error. We have worked out some log file related things please have a look for same.

[2015-04-08 10:39:05] Espo.ALERT: Rebuild database fault: exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes' in /var/www/html/espocrm/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:699
Stack trace:
#0 /var/www/html/espocrm/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(699): PDO->query('CREATE TABLE no...')
#1 /var/www/html/espocrm/application/Espo/Core/Utils/Database/Schema/Schema.php(203): Doctrine\DBAL\Connection->executeQuery('CREATE TABLE no...')
#2 /var/www/html/espocrm/install/core/Installer.php(209): Espo\Core\Utils\Database\Schema\Schema->rebuild()
#3 /var/www/html/espocrm/install/core/actions/buildDatabse.php(26): Installer->buildDatabase()
#4 /var/www/html/espocrm/install/index.php(135): include('/var/www...')
#5 {main}

Next exception 'Doctrine\DBAL\DBALException' with message 'An exception occurred while executing 'CREATE TABLE note (id VARCHAR(24) NOT NULL, post LONGTEXT DEFAULT NULL, data LONGTEXT DEFAULT NULL, type VARCHAR(255) DEFAULT NULL, number INT AUTO_INCREMENT NOT NULL UNIQUE, created_at DATETIME DEFAULT NULL, modified_at DATETIME DEFAULT NULL, deleted TINYINT(1) DEFAULT '0', super_parent_id VARCHAR(24) DEFAULT NULL, super_parent_type VARCHAR(255) DEFAULT NULL, parent_id VARCHAR(24) DEFAULT NULL, parent_type VARCHAR(255) DEFAULT NULL, modified_by_id VARCHAR(24) DEFAULT NULL, created_by_id VARCHAR(24) DEFAULT NULL, INDEX `superParent` (super_parent_id, super_parent_type), INDEX `parent` (parent_id, parent_type), INDEX `modifiedBy` (modified_by_id), INDEX `createdBy` (created_by_id), INDEX `IDX_NOTE_CREATED_AT` (created_at), INDEX `IDX_NOTE_PARENT_AND_SUPER_PARENT` (parent_id, parent_type, super_parent_id, super_parent_type), UNIQUE INDEX `UNIQ_CFBDFA1496901F54` (number), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = MyISAM':

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes' in /var/www/html/espocrm/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:91
Stack trace:
#0 /var/www/html/espocrm/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(702): Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Object(PDOException), 'CREATE TABLE no...', Array)
#1 /var/www/html/espocrm/application/Espo/Core/Utils/Database/Schema/Schema.php(203): Doctrine\DBAL\Connection->executeQuery('CREATE TABLE no...')
#2 /var/www/html/espocrm/install/core/Installer.php(209): Espo\Core\Utils\Database\Schema\Schema->rebuild()
#3 /var/www/html/espocrm/install/core/actions/buildDatabse.php(26): Installer->buildDatabase()
#4 /var/www/html/espocrm/install/index.php(135): include('/var/www...')
#5 {main} [] []
[2015-04-08 10:39:05] Espo.ERROR: Uncaught exception {"exception":"[object] (PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'user.avatar' in 'field list' at /var/www/html/espocrm/application/Espo/ORM/DB/Mapper.php:96)"} []

documentation and/or API Spec

i'm not meaning to be rude but you are in version 3.3.0 and yet there's no docs for nothing in this project, an official tutorial of how to create a plugin, an official docs and API specifications, it would be awesome to have these so people will be able to help improve and create plugins to your crm with ease

Question: How to integrate custom server side business logic in ESPO CRM.

Hi Espocrm team,
Can you please help me out with how can i create a custom server side business logic in ESPO CRM. my requirement is as below.

we have created custom module as per tutorial suggested on blog. now we wants to import record in our entity. but we need to add some business validation rule before custom import. so can u please tell me how can we achieve it.

Error 501 on updating any record in EspoCRM

Installation is successful and all pre-requisites are met, also the security configuration using chmod are executed successfully and the MySql user have full privileges.
I can insert new records in any section of the EspoCRM, however, updating any record is giving Error 501. Please help.

Email not parsing variables

When composing a new email from a template without focusing or changing the body textarea field the variables inside curly braces don't get parsed.

Problems with zero as floating point value.

If I add a field of floating point type with value 0, not only does the value not display in the UI, but filters do not exclude this from the results.

Eg. add field called 'turnover' to a company. Set it as 0 as default. Nothing is shown.

Create a filter based on turnover > 0, the company is still shown.

If you tell me where to look I can get a PR fixing this.

Ajax Failed after clicking install

2015-12-19_0753

Console log as shown above. All data was entered correctly. But cannot seem to move forward after clicking install. I did some internal debugging on the error above and noticed

2015-12-19_0756

Not sure if this has anything to do with it.

Thanks guys.

Click on "Call, Tasks, Meeting" and don't work...

Click on #Call #Tasks #Meeting and don't work...

::1 - - [15/Jul/2015:09:51:59 -0300] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.10 (Debian) (internal dummy connection)"
10111 - valessio [15/Jul/2015:09:52:00 -0300] "GET /crm/api/v1/Notification/action/notReadCount 1HTTP/1.1" 200 350 "http://domain.tdl/crm/" "Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 Iceweasel/31.8.0"

Send Call Invitations: error 500

If I try to send invitations to users, I get an "error 500" message. It's just an test call without any info except name, time and duration. The test users both have activated smtp mail accounts but no imap configured.

EspoCRM error log states:

[2015-05-12 11:55:09] Espo.ERROR: E_RECOVERABLE_ERROR: Object of class stdClass could not be converted to string {"file":"*fullpathtoespocrm*/application/Espo/Modules/Crm/Business/Event/Invitations.php","line":77} [] // <-- this line is repeated 14 times
[2015-05-12 11:55:09] Espo.ERROR: API [POST]:/:controller/action/:action, Params:Array
(
    [controller] => Call
    [action] => sendInvitations
)
, InputData: {"id":"5551e6f8ba3cb8783"} - See http://pobox.com/~djb/docs/smtplf.html.
 [] []
[2015-05-12 11:55:09] Espo.ERROR: Display Error: See http://pobox.com/~djb/docs/smtplf.html.
, Code: 500 URL: /api/v1/Call/action/sendInvitations [] []

The users get a notification in espocrm: "Email received from empty address; Invitation to call 'testcall' ". Now I can see the invitation in the email tab; but with status "archived", sent date "none", from "none", but with a filled body (subject, begin, action-buttons, attachment call.ics).

Edit: EspoCRM is configured with an outbound email account with the checkbox "anybody can use" activated.

Edit2: Sending testmails as well as "user assigned you a lead"-mails work fine.

The server is running debian wheezy with plesk 11.5 (apache 2.2, php 5.4, qmail, cron activated) with espocrm 3.2.2.

Unable to update (memory limit)

I'm trying to apply an update from v3.4.2 to v3.5.0.
And receive following error:

Bad server response:
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 13227209 bytes)
in ...Espo/Core/Upgrades/Actions/Base/Upload.php on line 49

Date Time always less than the real time with 2 hours

I noticed that the time is always less than the correct time by two hours,
my TimeZone is Europe/Istanbul and it is set in the settings of EspoCRM

    date_default_timezone_set('Europe/Istanbul');
    echo date("D M d, Y G:i a");           //Wed Dec 30, 2015 12:20 pm
    //but the now in Espo is 10:20 pm

Entity-less module namespace not included in unify

Hi I'm working on an extension which runs hooks, but does not add a new entity type.

If I do not create a fake entity such as

<modulename>/Resources/metadata/entityDefs/Placeholder.json
{
    "entity": false,
    "layouts": false,
    "tab": false,
    "acl": false,
    "module": "<modulename>",
    "stream": false,
    "customizable": false,
    "importable": false
}

then the namespace is never included during a Rebuild, and the hooks are not added to hooks.php. Should I be doing something differently, or does the unify stage need changed to handle this situation?

Send Invitation

Can't send invitations from module Call,
http://_._/api/v1/Meeting/action/sendInvitations 404 Not Found

delete or add a field in the address field of contacts screen

In the contact input screen is a field named Address. Using the layout manager under the contact tab, i can see only the Address Field. But when i try to create a new contact, i can see Streee, City, State, Postal Code and Country Fields.

addressfield

How i can add, change or edit the content of address field or content or whatever it si.

HTML text field shows undefined when not editing

Hello

I found the solution to the problem posed in this forum thread

"Undefined" is displayed because the system can not find the field "body".

They have to change line 113 of the client/src/views/fields/wysiwyg.js file

var body = this.model.get('body');

to

var body = this.model.get(this.name);

Greetings!

Need to trim all input fields before submit

It's possible to add whitepsace at the end of fields like name, lastname, etc

This messes with searching when the full name is used

eg

first_name = 'John ';
last_name = 'Smith';

Perform a search for John Smith, and the contact will not show. Suggest trimming all inputs by default. Not sure where best to do this.

Sorting icon is misused

< means small to big
> means big to small

< expects A-Z not Z-A
< expects 1970-01-01 till 2015-04-18 not 2015-04-18 till 1970-01-01

username regex shouldn't be hard coded

by now the username is limiited by a regex in Views.User.Fields.UserName
client/src/views/user/fields/user-name.js

Since already existing user names may also contain '.' or '-' to allow SSO the regex should be a config option not to be forced to patch the JS

error on setting filter on two values in Multiple Enum

I am testing out EspoCRM and while the features are great, I sometimes run into bugs like the one described below.

I created a multiple enum called 'tag'. I added it to the Accounts list view, then to Filters for Accounts.

All worked fine so far.

Then I tried setting filter with two values. Things went very wrong, to the point where my Accounts tab does not show at all.

In the browser console, I see:
Error: Option 'multiple' is not allowed for Select2 when attached to a element. TypeError: this.$advancedFiltersPanel is undefined This is a serious bug, since even removing "tag" from available filters in the Administration pane did not help, so I am practically unable to see my list of Accounts.

make date format configurable

at the moment any date is rendered in the same way using relative formats similar to Apple. By today it is not possible to confiure or overwrite the date display format to always use format e.g. dd.mm.YYYY.
It should be possible to configure or customize this format without patching stringifyDateValue in client/src/views/fields/date.js

Cant change some spanish language words

Language available in spanish is with the spain pronunciation. Im latin and some words sounds weird in my spanish language. I change the words i dont like in the es_ES directory but words remains unchanged.

Why this happen?

change Stream title to Comment

The module where a person post a comment with any attachment has a title named STREAM.
Can i change that word (STREAM) to COMMENT?

Thanks.

Error with add account

I have added some custom fields to the account table, from the field management.
And then added some accounts with no error.
But when I deleted some extra fields from the account, some thing went wrong when I want to add accounts.
It says :
Uncaught TypeError: Cannot read property 'entity' of undefined

The Error maybe here:
this.foreignScope = this.foreignScope || this.model.getFieldParam(this.name, 'entity') || this.model.defs.links[this.name].entity;

Send Invitations for meeting: 500 error

In the console I have read this message:

POST
http://{www.server.com}/api/v1/Meeting/action/sendInvitations 500 (Internal Server Error)

Server side error: The input appears to be a DNS hostname but cannot match against hostname schema for TLD 'com', The input does not appear to be a valid URI hostname, The input does not appear to be a valid local network name

I can not use a custom view in modal windows

This is due to an error in the detail.js file, line 214.

At line 213 view is defined (custom or default), but the variable at line 214 is not used. Please replace this

this.createView('quickCreate', 'Modals.Edit', {

for this

this.createView('quickCreate', viewName, {

Greetings!

can i creat read only custom fields

Im looking to create a field with edit permission for some users and read only permission to other users.

Is that possible? if, yes, How can i do that?

Can't import emails with Content-transfer-encoding: quoted-printable

this section of a multipart email causes the import to fail:

--B_3494847657_1151521
Content-type: text/plain;
    charset="ISO-8859-1"
Content-transfer-encoding: quoted-printable

No, that=B9s not unusual though.
I=B9ll chase Phil.
Thanks,
Kirsty
=20

All that appears in the database after import for body_plain is "No, that", and similar for body.

That is, the =B9 char is causing problems.

This is from an email sent by Outlook on windows.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.