We had the need to notify the assigned user when an email was received that was related to a Case record. To make our application more flexible we extended this concept to be reusable for email received that was related to any module. We then further broke out the notification functions to be reusable in other scenarios.
Archives For Tip
The problem that we will try to solve with this post is:
How do we make sure that we are never developing using actual customer data but, at the same time, work with data that reflects reality?
Usually, when we work on a customization project for a customer you have a minimum of 3 different environments: Development, User Acceptance Testing (UAT), and Production. To make sure that we work in optimal and consistent conditions, we usually copy the database from one environment to another (preferably from production to other environments). Doing this type of manipulation has multiple drawbacks, including:
- We have to collect a Database Dump which means that it contains unencrypted raw data. What would happen if we mistakenly expose this dump to someone who is unauthorized?
- We have to test some functionality to make sure that it works. What would happen if we test a Campaign that sends thousand of e-mails … to the … actual customers of our customer?
Anonymizing the data is the best practice to avoid “playing” with customer data and to keep their trust in us.
The challenge with anonymizing data is figuring out how to overwrite the data with something that is completely unrecognizable. For example: “John Doe” will become “voluptatem accusantium“. His job title becomes “doloremque” and his country “magnam“. His phone number will become “569898520114457878744778” instead of “+123456789“.
In regard to some recent questions from Sugar Community stalwart, Francesca Shiekh, we will address some questions about how to deal with the PDF Manager that was originally introduced in Sugar 6.
A Common Use Case
In this article we want to resolve this common use case for customizing the PDF manager. When following up on a meeting, you want to be able to generate an attractive summary document that lists all the meeting details included lists of those who were invited or attended.
We will customize the PDF manager so that we can print a meeting summary for any Meeting record that will have all contacts and invited users listed.
Here is a guest post from Hatim Alam from BHEA, an Elite SugarCRM Partner, and is a certified Sugar Developer Specialist. Hatim shares some ideas for getting creative use out of Sugar Notifications. Share your own ideas in comments below!
In this post, we are going to look into different scenarios where Sugar Notifications can be of great help. For example, It can be used to notify user when new post or comment has been created on the Activity Stream or on execution of custom job or on triggering of API endpoint or implementing approval/review workflow.
We will create Sugar Notification for each of these scenarios and learn how easy it is to use and implement.
What are Sugar Notifications?
The Notifications indicator is available to all Sugar users and is located on the upper right of the screen next to global search.
The number displayed in the notifications box indicates the number of messages with a status of “Unread”. A “0” will appear if there are no unread notifications.
Open the Notifications dropdown and click “View Notifications” in order to see all notifications in a list view.
The Sugar application requires that a number of directories be writable in order to properly function. The precise directories and minimum permissions needed are covered in the Sugar Install Guide.
A common practice for Sugar Developers to work around file permission issues is to make everything writable to the web user. In practice, this does not cause any functional issues and is an easy way to avoid problems. But this is not desirable in production or sensitive environments from a security point of view because it violates the principle of least privilege. So Developers should really familiarize themselves with setting up secure file permissions for their web servers since this will be more in line with real production environments.
Here are some tips for working with extended file system permissions on your Sugar deployments from Jelle Vink our Security Architect.
This post is targeted at beginner to intermediate Sugar Developers who want to add a subpanel to a module which returns custom results.
This post assumes some basic knowledge of Sugar 7 development, Sugar 7 administration, PHP, and SQL. This article will hopefully be useful to those who have done some Sugar 7 development but are not necessarily experts.
The example in this post was created on an out-of-the-box installation of Sugar Professional 220.127.116.11 with the generated demo data. But this technique should work on any on-premise Sugar 7 instance.
I recently needed to add a subpanel to a module which returned rows matching some unusual criteria. The requirement for this subpanel didn’t match the standard one-to-many or many-to-many relationship with another module that a subpanel usually reflects. I researched ways to do this and came across an excellent blog post on the subject by Shane Dowling. Following what he had written I was able to accomplish my task. This post is an attempt to make this technique accessible to those who are less familiar with Sugar 7 development.
When it comes to customization, Sugar 7 is far away the best and most flexible CRM on the market. The Sugar framework empowers the developers to make heavy modifications in the user interface (UI) without touching the core of the product.
Our customers are always coming up with interesting use cases. One customer asked me this question.
I don’t want my end users to accidentally unlink related Contact records. Is it possible to selectively disable the Unlink button so that only some users are allowed to use it?
There are many ways to do this but here is an easy one that allow us to manage who has access to unlink a record using Teams. But we could just as easily adapt this technique to use a Role or some other attribute of a Sugar user to do the same thing. Sugar’s flexibility means your imagination is the limit.