No announcement yet.

Learning EspoCRM and Design

  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    My learning is slowing down as it is a "Start using phase", however today I need to fix a mistake during the initial design phase, I added "Auto-numering" to each contact (and all other entity) to make it easier to give that contact a Unique numbers for update and searching. However I didn't add these numbering until later after quite a few Record has been added. Now I end up with a few hundreds Record without an numbers, which is OK if I don't need to access them but if I start using them I will need to assign them a numbers.

    There was a few method I could think of adding a number, first to use myPHPAdmin and manually fill it in. Second is through using Import, Third is to create a Duplicate or renew.

    The solution is: Duplicate and Merge.

    I made a duplicate of the contact, then I merge the data. This kept (hopefully) my link intact while it added the numbering.


    • #32
      The Trial of using Extensions.

      I like to play with Extensions that I believe that will have use in the future or immediately. One of the extensions I came across is ayman.alkom (thanks for making this!)

      Unfortunately I ran into a bug which could be related or it may be something else. But here is my learning on how to fix EspoCRM when it may be broken. A post can be read here also:

      But here was my insight in fixing the problem.


      After I confirm that EspoPlus is the culprit in this bug. Here is how I finally manage to fix it. Not sure if this should added to EspoCRM as a bug report so that a situation like this doesn't prevent EspoCRM from "crashing".

      I dig around to see if it was something else that caused the problem and not EspoPlus, but digging further reveal that it must be related to EspoPlus because I haven't really made any changes my CRM and the error indicated it due to EspoCRM.

      I have already uninstall the extension so should help fix the problem but thinking that maybe some folder or file still remain.
      So I research on where the extension file could be located. There was two folder that I found:


      I move the Extensions folder that I believe to be bugged somewhere else (rather than deleting). By moving it I can always move it back, if I delete it then I would have to restore or reupload it if it not the extension that causing the problem.


      • tothewine
        tothewine commented
        Editing a comment
        you can also probably just rename instead of moving since the autoloading would not find the classes if their path does not match the namespace

      • espcrm
        espcrm commented
        Editing a comment
        Cool. Something to keep in minds for future. I thought it will just load everything found in the folder so best to give it an 'invalid' path.

    • #33
      I recently discover a two hidden feature that might not be noticeable:

      The First: Drag and drop field. Initially I was thinking, I don't think drag and drop is support, look like I will need to create a Feature request for it. But then I gave it a try and it worked! Drag and drop can be done for a Image field and even an Advanced WYSIWYG field too.

      Second Feature is relate to clock and time. It rather annoying having to type in time sometime (accurately), luckily espoCRM is relative smart about it (unlike their date). For example you can use these variation to get the for for, let say 05:30pm or 06:15am


      There is no need for the starting "0", nor do you need the colon :, and last don't need the "m". Quite a good shortcut if you write time frequently.


    • #34
      Just discover this today and never noticed it before although I create a few of them.

      From email field you can create thing such as Task, Case, Documents, etc. Most of the time I just create them and set it as complete (because when I create when I worked on it).

      Anyway I made a Task which was incomplete so I decide to view it and notice a Blue (hyperlinked) text on my Description. Upon reviewing and editing the link I found that: (1) the link is clickable and (2) it link to the email!

      Anyway this field only seem to work in Description due to some special coding I suppose. You can create you own manually by using this type of code:


      This code above is just an example, let break it down:
      The "Test" is the Link name, it need to be within the [ ] bracket.
      The #contact/view/123 is the hyperlink, #Contact is the entity (Can be Email, Account, etc), /view/ because you want to be able to look at the Contact in the Detailed view, lastly the 123 (fake number), this is the ID field, if you open any Contact/Email/Account you can grab this special unique ID (some kind of hash?)

      Once I learn how to Create Custom button I will add these type of feature, might also add this feature using formula once I can figure out a way it can be use.

      If anyone have a creative moment by using this Hyperlink method, let me know. Of course you can also do the thing such using Hyperlinks in a WYSIWYG field also.


      • #35
        #Contact/view/1234567 is actually a routing call: You are requesting a controller "Contact" to execute the action "view" on the entity id "1234567". In other words: "show me Contact id 1234567"

        This is how you request a single record (detail) view.

        To request a list of Contacts the call would be #Contact

        You can learn how all these calls are made by looking at the web address in your browser when you click a side menu item or on a record in list view
        Last edited by telecastg; 07-08-2020, 06:53 AM.


        • espcrm
          espcrm commented
          Editing a comment
          Hmmm with that knowledge in mind, I suppose it might be possible for me to do some button in the future. The key word you use here, and I remember mention of "Controller" in thread of button; I would always call it Entity (e.g. Admin > Entity Manager) instead of Controller.

          But what you are saying it a layman way to explain a concept? Or are those word technical and correct usage when it come to coding aspect of EspoCRM?

          It been over a week, but I haven't really think up of any usage to make Espo even greater yet.

        • telecastg
          telecastg commented
          Editing a comment
          Entity (model), Controller and View are three different concepts that are part of the Model-View-Controller software design pattern, which is used by Espo and many modern applications.

          If you are not familiar with these technical terms and are interested in going beyond the Admin facility to customize Espo by coding, I suggest this article that explains it in layman's language.
          Last edited by telecastg; 07-16-2020, 03:56 PM.

      • #36
        I wanted to add this to the first post but unfortunately it has finally reached the 10,000 character limits. Until I made a move to a less restrictive platform make edit in post #15 ( . This section is about tools (although choice is very limited at the moment)


        • #37
          Topic: How to get Contact from Wordpress into EspoCRM.

          1) Step up your EspoCRM installation first by doing this.
          2) Log in admin account, go to Administion > Lead Captures (or this URL: /#LeadCapture/
          3) Create Entry Point (button top right)
          4) Fill in any detail you (create a Target List if you haven't, I call mine, "Wordpress Website")
          5) For Payload field, I only choose Last name, Email and Description for this example.
          6) Save.

          On the right side you will see something like this:

          { lastName: LAST_NAME, emailAddress: EMAIL_ADDRESS, description: DESCRIPTION }
          Log in your Wordpress website.
          (This guide will not provided for how to set up Contact form but if you have trouble let me know).

          Part 2.
          1. Set up your wordpress website.
          2. Login admin panel > Plugins > add new > Search plugins > cf7 api > install "Contact form 7 TO API + Basic Auth"
          3. (Note install Contact Form 7 if you don't have it yet)
          4. Activate Plugins
          5. On the side bar, open your form (Contact > Contact Forms > (open a form) > Edit > API Integration
          6. Click "Send to API"
          7. Paste the Base URL from the code above, for example:
          8. Input type: json
          9. Method: Post
          10. JSON Template would be something like this:
          "lastName": "[your-name]",
          "emailAddress": "[your-email]",
          "description": "[your-message]"
          1. Click Save.
          By now it won't work yet because this document ( ) say we need the headers "Accept: application/json" too.

          For that we need to follow these step:

          Go to your Host file manager (or make these edit before uploading to your Wordpress website). Assuming it is uploaded then make the edit to this file (this guide is applicable to version 1.4.6 only, I think it general work for all version).


          Around lines 561 you should see this code:
          if( $record_type == "json" )
          { $args['headers']['Content-Type'] = 'application/json';
          Now I want to add another custom headers in here, I would change the above code to this code:

          if( $record_type == "json" ) {
          $args['headers']['Content-Type'] = 'application/json';
          $args['headers']['Accept'] = 'application/json';
          Save the file. Now try submitting your form from your Wordpress website. Data should be send to your Target List or Leads page.

          Feel free to ask if there any question. I skipped a few details as it too basic and non relevant to this guide. (e.g how to add form to your website; use shortcode)

          One issue with this method is, if you update the plugins, you need to update the file again (until this plugin support custom headers)

          END OF GUIDE.

          My Insight to Learning:
          Finally I made a success to learning API, our main website is a Wordpress Page and currently data is just being send by email, making us having to retype everything (or copy/paste) if we want those update. Good news is I finally made some progress that is actually working (I have just been testing and playing with it).

          Not to bore you with too much detail and there is too many mistake and error which I didn't note down. So just jump straight to the guide, I think other type of form will have similar concept. Currently I only use Contact Form 7 because it usually is the default contact in Worpdress installation.
          Last edited by espcrm; 07-23-2020, 08:53 AM.


          • espcrm
            espcrm commented
            Editing a comment
            Script is still out of my skill level unless it something I can copy/paste and change URL only. Anyway I update the guide a little for typo and rewords to make to clearer. Please let me know if anything not clear. Maybe one day I can be bother to do Video tutorial time permit and written format just too difficult to understand.

            It does have a bit of weakness though, I saw a few other plugins that provide more control and will look into it once I feel the need to "update and upgrade".

          • tothewine
            tothewine commented
            Editing a comment
            imho well written tutorials are better than video

          • tothewine
            tothewine commented
            Editing a comment
            For lead capture in Wordpress with WPForms this is working for me (put the code in /wp-content/plugins/espo-lead.php):

            # =============== [ START CODE ] =================== #

            Plugin Name: Whatever
            Description: Some description
            Version: 1
            Author: You

            function espo_wpf_dev_process( $fields, $entry, $form_data) {
            if (absint( $form_data['id'] ) !== 5 ) return $fields; // activate only on form id 5
            $endpoint = 'https://your-espocrm.instance/api/v1/LeadCapture/f7ca1234b347f448bafe4a58';
            wp_remote_post($endpoint, [
            'headers' => ['Content-Type' => 'application/json; charset=utf-8', 'Accept' => 'application/json'],
            'body' => json_encode(['firstName' => $fields[1]['value'],'emailAddress' => $fields[2]['value']),
            'method' => 'POST',
            'data_format' => 'body',

            add_action('wpforms_process', 'espo_wpf_dev_process', 10, 3);

            # =============== [ FINISH] =================== #

            This uses wordpress hooks system. I hope it will be useful for people trying to do lead capture on wordpress with wpforms.
            Last edited by tothewine; 11-08-2020, 12:31 AM.

        • #38
          Hi guys,

          Now that I made some success in API and have a small idea of how to use this magic (API) further, my next step is, "how to do I convert these data onto my phone". I have watch and read a few guides but it seem like it quite long and take quite a lot of coding, skill and new software installation to develop an App, write these API call, debug and test, etc, etc.

          But first thing I want to the baby step. I just want to somehow grab 1 single detail (for example: their Phone number) from my EspoCRM onto my phone, the more advance stuff can be development once we have a working example.

          I can already get these information through API (using Network Tools and Rest API Test Software/Apps) but the way it display thing is just difficult to read, I need to convert these JSON style data into a "Form" style layout and looks.

          Looking through various Apps and thinking of various way to do this the only solution I came up with was one App (Android) call: "Memento Database".

          This App is quite nice, it allow but to create database on my Phone but I don't want to have two separate system (already got like 5 system at the moments that I want all to converge into EspoCRM).

          Anyway I don't have much luck with it at the moment after a couple of test, so I thought I might post here hoping someone who is interested in this "side" project can figure it out with me.

          From reading information, I should be able to do this through "Data Sources" function, allowing me to Get data from EspoCRM and merge/transform these field into Memento field:

          EspoCRM also describe some method here:


          As for why we need to do this?

          Well, at the moment there is still no Apps available (there was a few brief mention of it on the forum but no working system yet), there is an iOS apps but that is closed sources and pay-to-use. Secondly if I (and we) can learn more about this can we can help build the Phone App together or contribute to it development.

          Anyway hopefully this post garner some interest in our next step a Prototype "Mobile PhoneApp".
          Last edited by espcrm; 07-23-2020, 08:57 AM.


          • espcrm
            espcrm commented
            Editing a comment
            Rather than learning using the provided sample, I thought about seeing how other people does it for a more open style API (without keys and such). I found this guide here that is quite detail in it step. I will slowly read over and do a practice to see if I can get the same result and hopefully from that training we can adapt it to EspoCRM

            A big part of working with JavaScript is knowing how to connect to APIs. As a fledgling developer, you may have been told at some point to…

            Update: I manage to reproduce the Guide but were unable to adapt it to Espo. So no luck at the moment.

            Used these code as adaptation but can't even get pass the "console" F12 error, all trial and error result in Syntax error.

            Last edited by espcrm; 07-24-2020, 04:45 AM.

          • espcrm
            espcrm commented
            Editing a comment
            Memento Database and Javascript plan end up in failure, still no true progress that will work with EspoCRM. I decided to try out the Mobile Android app and guides using RecyclerView.

            Unfortunately after watching about 3 hours worth of video it seem that it still a long way to go before a prototype can be done. Hopefully some good result from the weekend.

        • #39
          Haven't been learning lately, mostly everything is quite static and made little to no progress in term of the app.

          Just discovered something today as I looked at Email Draft and wanted to share. I could not find where I post about Email Layout so I use this learning thread instead.

          It look like Email Layout (Details) can be edit and change from GUI! Unfortunately these change only applies to the Draft email section!


          • #40
            For anyone that following this thread I thought I give a quick update. The Android app's "Breakfree" is being revived, there is an update plan to it be to compatible again. There is a thread here mentioning of it but it might go unseen so this post is to give it a bit more exposure.

            Hi, I am the author of the Breakfree mobile app for Espocrm. My app was removed from the Google app store for some new policy updates and I just addressed them as per Google guidelines and the app is now back on the Google Play Store. However I noticed that the login was failing since my app was written a while back and it


            • #41
              Been slowly updating this thread; which isn't noticeable unless you use some sort of monitor software.

              Anyway there is a bunch of new section in Part 2 and Part 3 of the thread (can be found on first post). If there any more section that should be added, let me know.

              Some new section I include are:

              Free Extensions:
              Administration Details / Server Developer
              Server CRM_ Installation Maintenance and Administration

              Also add preliminary Table of Contents
              Last edited by espcrm; 09-16-2020, 07:26 AM.


              • espcrm
                espcrm commented
                Editing a comment
                I added the current Table of Contents on first post, but here is the future (proposed) table of contents)

                1 Part 2 – Admin Panel & GUI (Graphical User Interface)
                1.1 General Guide
                1.2 FAQ_ Questions and Answer
                1.3 Design & Layout & GUI_
                1.4 Formula
                1.5 Free Extensions
                1.6 Workflow (Paid Extensions)

                2 Part 2 – Server & Administration Access
                2.1 API & Integration
                2.2 Server CRM_ Installation Maintenance and Administration

                3 Part 3 – Coding
                3.1 General Code
                3.2 Code: PDF
                3.3 Code: Extensions
                3.4 Code: Webhook

                4 Part 4 – Resources
                4.1 EspoCRM Team (Internal)
                4.2 3rd Party Developer & Service Provider (External)
                4.3 Theme(s)
                4.4 Tools
                4.5 API / Sync / Integration / Call, Read, Post, Get / CRUD

                5 Part 5 – Troubleshoot Error
                5.1 Administration Details / Server Developer
                5.2 General Troubleshoot
                5.3 Email
                5.4 Server

              • tothewine
                tothewine commented
                Editing a comment
                Thank you! You are doing a great service to the community in indexing knowledge, especially for the newcomers.

              • telecastg
                telecastg commented
                Editing a comment
                Completely agree with tothewine thanks for your contribution espcrm

            • #42
              SMS Sync

              Hi guys, another try at SMS Gateway today. Made some new discovery, made some progress, still not fully functional but at least there is progress.

              This tools act as a gateway, allowing you to send and receive SMS. I only manage to get it to Sync all my SMS to EspoCRM at this stage. Although there is error and there is improvement that I need to work out before it is functional. I'm making this post hopefully to bring more attention to this tools, and perhaps get some discussions in using it.

              There is a few quirk I can't figure out, the first is the "date" formatting, the second is, how can I link or relationship it. Anyway here is the tools, feel free to ask if you have any questions or input to using it.

              SMSsync The free and open source SMS gateway for Android devices


              • #43
                Hi guys, discovered Markdown today. Previously I just random guessed it but there is an actual documents about it.

                It purpose it to style your writing in the Description/Text field. You can read about it here:

                However the purpose of this post is this, I created a Tool-tips in my Description. I use this tool tips to help remember these function (until one day it become second nature to type). You can copy/paste it or modify it based on the documents if you like to do the same.

                To use (example);
                Administration > Entity Manager > Meeting > Fields > Description > Tooltip Text

                [Link Text Name](#Meeting/view/{ID})
                ~~strike out~~
                > Block quote
                * Bullet point
                1. Number Item
                **Bold Text**
                *Italic Text*
                Last edited by espcrm; 10-09-2020, 02:28 AM.


                • tothewine
                  tothewine commented
                  Editing a comment
                  I suppose somebody could do an edit to make this the default tooltip for default text fields

              • #44
                Also, you can get quick Markdown syntax tip in a Stream tooltip:
                Attached Files


                • espcrm
                  espcrm commented
                  Editing a comment
                  Good tips.

                  Adding your own tooltips have advantages such as formatting. More importantly it is visible during Quick Create/Edit. And I just notice that Tool-tips Markdown also work so I need to update my Tooltips to be some sort of Code format.

              • #45
                Hi guys, new changes to this thread and seeking any advise to make it better.

                With the forum there is a 10,000 characters limit on it. This is why there is a bunch of "part 1, part 2, part 3", now that I need a "part 4" I decide to seek alternative solution to this to break away from the 10k chars limit.

                I decide to go with Github (if there any other better suggestion do tell). I don't think there is any character restriction on it. As a bonus; perhaps someone might even Pull Request the page.

                One issue I don't link it the Editing function of it; Github doesn't have a WYSWIG editor so it forced me to use a HTML converter. So if you have any idea on where I can continue adding information to the purpose of this thread, do tell.

                Or would user of EspoCRM prefer to just keep it in this thread, even though navigation nightmare.

                And here is the file for reference:
                Contribute to o-data/EspoCRM-Learning-and-Design development by creating an account on GitHub.

                But it is better viewed here:

                I only added Part 2 as a test for now.


                • espcrm
                  espcrm commented
                  Editing a comment
                  Nice, thank you @sahlmaxb. Going to create a Wiki it is.

                  After shortly using it it does have some issue (that might be solvable and I just don't know how yet). The first is there is a "change logs", which is OK.
                  Second is I don't like how I have to keep scrolling up to use the editing "toolbars".
                  Last edited by espcrm; 10-15-2020, 04:59 AM.

                • espcrm
                  espcrm commented
                  Editing a comment
                  Just spotted this link hidden away at the top:
                  Under "revision".

                  So Wiki does get logs of update and changes. That solve one issue. now the WYSIYWG like field toolbar, it might be hidden somewhere in setting to enable it to be Fixed.

                • tothewine
                  tothewine commented
                  Editing a comment
                  any way to contribute directly on the wiki? if I fork i do not see the pages -_-