Internal SugarCRM Project: Secure Password Emailer

We asked our engineering internJim Rybarskito contribute to our blog and give some insight to the internal projects he’s been working on here at Epicom. In this week’s mini-series update, Jim goes over the new browser-side password encryption program (or Secure Password Emailer for short). Handling client passwords is a delicate task but we trusted Jim to do the job well and he did. Here is what Jim had to say.

Epicom is very serious about protecting client credentials, and while we have a very secure way of storing and accessing this information locally, sending passwords to clients makes one susceptible to all sorts of security hazards. Our previous standard practice was to call a client and verbally communicate their login information over the phone. It’s a reasonably safe method, but giving someone a random sequence of mixed-case alphanumeric and special characters is something best done by computer. Email is out of the question, as it can be easily read by an attacker.

A recent project of mine has been to create a Password Emailer module in Sugar to enable a convenient and safe way to communicate password and login information. When an engineer wants to send a password to an individual, he will open up the Password Emailer module, enter the password in the plaintext field and choose a client from our Contact list.

Then he will save the record, and he’s done! Behind the scenes, Sugar generates a random key, encrypts the password with it, and sends the client an email with a link to an entrypoint, with the ID and key as GET parameters. The record is then saved (minus the key), so the only information that ever gets stored in our database is the encrypted version of the password. Since the key isn’t stored anywhere, we cannot decrypt the password.

On the client end, they will receive an automated email from the engineer who created the record (we do this using the SugarPHPmailer class). This email will ask them to open up a link to read their message which is delivered over a secure SSL connection. Once the link is opened, Sugar decrypts the password with the key in the link and displays it for the client. It then deletes the encrypted password and records the IP address of the person who opened the link along with the time that they viewed it.

If a second attempt is made to open that link (or if an invalid ID is used, or the record is more than 72 hours old), the engineering department at Epicom will receive an email, notifying of a possible intrusion attempt.

The secure password emailer was built for Epicom to use internally, but is versatile enough to use in other situations. Because any message can be sent through the encryption process, secure data and information other than just passwords can travel safely to a contact. If you are sending confidential information such as passwords, bank information, SSN, financial data, etc. via email, we encourage you to consider a more secure method. If you have any questions about the projects discussed in this mini series, please contact us at info@epicom.com.

Telecom Campaign Manager

During SugarCon 2012, BACO Realty, Epicom, and Twilio participated in a panel discussion about an innovative app Epicom built to better manage advertising campaigns in SugarCRM. The benefit of online advertising has always been its ability to measure effectiveness through click through rates and impressions. With traditional advertising, it’s difficult to measure the impact it has on sales…. except for now. Epicom has developed a Telecom Campaign Manager for SugarCRM which tracks campaigns via a unique phone number, records and stores inbound calls, and reports the effectiveness of each advertising campaign.

The Telecom Campaign Manager is built using an integration to Twilio, a cloud communications platform used for voice, conference and SMS applications. Epicom has completed several integrations between SugarCRM and Twilio such as Click-to-Call, SMS text message alerts, screen pops, conference bridging, and more. Epicom initially built the Telecom Campaign Manager for customer BACO Realty, a self storage company with facilities nationwide. BACO’s main source for leads is its advertising campaigns including traditional media such as billboards, newspapers, magazines, and radio. They also do online advertising on websites like Facebook and Craigslist.

Telecom Campaign Manager

After deploying the Telecom Campaign Manager, BACO Realty can now track all of its advertising campaigns inside its SugarCRM system.

Unique Phone Number Creation: For each campaign created in SugarCRM, BACO generates a unique phone number for that ad group. This is done by choosing the desired area code or zipcode and then selecting from a list of available local numbers to buy. The unique phone number is generated using Twilio and enables the phone number to be tracked and recorded. After this, BACO chooses the local storage facility it wishes to bridge the new phone number to. By using phone numbers and having the flexibility to bridge them, BACO can place ads in local markets and have callers or prospects automatically routed to the correct storage facility in their area.

Call Logging: When a call comes in from the phone number generated by your Sugar campaign, the call is automatically logged in SugarCRM. Additionally, the phone number, caller name, ad campaign, and lead source are automatically stored in the new lead record. The status of the logged call is also automatically updated to reflect a missed, in progress, or completed phone call.

Call Recording and Storage: Each inbound call, that comes into Sugar from the unique phone number, is recorded. A recording of the call is instantly stored inside of Sugar and can be played back for quality assurance or training purposes for new phone operators. Up to 10,000 minutes per month of recording storage is included with each license of the Telecom Campaign Manager.

Call Script: When an operator answers an inbound call from one of the telecom campaigns, the call and lead record are automatically created. In addition to this, Epicom designed a call script which is automatically generated for the operator. This was built custom for BACO and made to work seamlessly with the Telecom Campaign Manager by auto populating known information such as ad campaign, caller ID, and area code and phone number. The operator can then walk through the call script and qualify the lead and simultaneously update that lead record.

In the case of BACO Realty, the operator asks questions such as storage unit size needed, moving date, items needed to be stored, etc. The script includes drop down fields and check boxes to enable the operator to complete the form while on the phone. Once the call is complete, this information can be used to fulfill quotes for rental requests.

Reports and Metrics: Because each ad group has a unique phone number generated through the Twilio integration, the Telecom Campaign Manager can accurately track the effectiveness of each campaign. Users can determine which ad source brings in the most leads, the most qualified leads, and the largest won opportunities. Additionally, companies can determine which local store is more successful with advertising and can drill-down on which medium works better in certain markets.

The Telecom Campaign Manager works well for tracking advertising campaigns as well as any promotion that involves a phone number. The product eliminates the need for operators to ask “how did you hear about us.” It saves time by automatically creating call and lead records and prefilling known information. Most importantly, it enables managers to run reports on the effectiveness of marketing and advertising campaigns and stores a complete recording of the call to ensure excellent customer service is provided.

For more information on the Telecom Campaign Manager, email info@epicom.com.

SugarCon 2012 Highlights

It’s been about two weeks since SugarCon 2012 wrapped-up in San Francisco. This year’s conference sent me back to Austin with an overwhelming amount of optimism and motivation. With more than 1,000 attendees, inspiring keynotes, informative breakout sessions, and tons of networking opportunities, Epicom can officially chalk this one up as a success!

From my perspective, SugarCon was more than just a two-day users conference. It began with our customers’ participation and advocacy, our partners’ support, our engineers’ creativity, and of course the great relationship we’ve developed with the Sugar team and other Sugar channel partners.

My top five highlights of SugarCon 2012 are Epicom’s customers, our partnerships, the presentations, the Sugar App Throwdown, and the Sugar team.

Customers

Not just customers… but advocates. When we ask our customers why they choose Epicom, we consistently hear that we are easy to work with, have smart and creative engineers, and we are priced right. Two of the three things reflect on the outstanding Engineering team we’ve built and are proof that it all starts with great work.

Several of our customers attended SugarCon for the sessions and training, but a few went above and beyond by presenting their case study in sessions and doing video testimonials.

I want to thank Steven Ford from BACO Realty and Matt Davidson from USAFact for being amazing customer advocates for Epicom and for presenting during SugarCon 2012. In addition to the breakout session, Matt was also included in SugarCon’s closing keynote as one of two featured customers.

 

Partnerships

Over the past two years, Epicom has dedicated a quarter of its SugarCon booth to highlighting our amazing technology partners. Companies like Twilio, Pardot, Adobe EchoSign, Entrinsik, Omni, and Transverse are all creating robust products that fit nicely into the Sugar ecosystem. Epicom has recommended and integrated dozens of our partners’ applications with SugarCRM. At SugarCon, we collaborated with several of our partners to drive traffic to our booth, highlight our integrations, and share success stories of customers using our partner’s products with their SugarCRM system.

Epicom worked closely with Transverse, the makers of the Tract billing system, to show-off the integration between the all-in-one activity-based rating, billing and subscription platform and SugarCRM. To creatively show this integration in action, Epicom and Transverse used a remote control slot car racing game as a real life example. The race track came with software to measure lap and race times, driver history, and number of wins. Epicom integrated the race track software into SugarCRM, so that each driver/SugarCon attendee could be recorded and reported on inside of Sugar. Epicom and Transverse took this a step further and integrated the Tract billing system with the Sugar race scores and “billed” the drivers per lap using the billing software. The race track was setup outside of Transverse’s booth for attendees to play and see the integration first hand.

Other partners such as Twilio, a cloud-based application used for voice, conference, and SMS communications, had their own booth or kiosk at SugarCon to show-off the products. Twilio used Epicom’s SugarCon DEMO system to demonstrate several integrations Epicom built between SugarCRM and Twilio such as Click-to-Call, SMS text message alerts, screen pops, conference bridging, and more.

Having a booth at SugarCon has been great for Epicom, but the best part is sharing an entire exhibit hall with great partners and products, and seeing that ecosystem grow each year.

Great Keynotes & Presentations

Larry Augustine’s opening keynote set the stage for SugarCon and the official announcement of IBM’s move from Siebel to SugarCRM. Larry painted the picture of the CRM marketplace and discussed the opportunity for SugarCRM to increase market share. His presentation was just what Sugar users, partners, and analysts wanted and needed to hear.

Guy Kawasaki, the award-winning author of Enchantment: The Art of Changing Hearts, Minds and Actions, gave an excellent presentation that was engaging, motivational, and funny. His theme was how to be enchanting. In his presentation, Guy outlined concepts from his book and explained how to put those ideas into action to create happier and more loyal customers. Plus… they gave out free books, which Guy autographed afterwards.

Epicom’s customers also had their place in the conference schedule (BACO Realty’s Telecom Campaign Manager session and USAFact’s session on its use of Mobile CRM to drive sales and operations). In addition to those sessions, Epicom CEO & Founder, Bill Harrison foreshadowed and presented his ideas on CRM mobile apps. Bill discussed how Mobile CRM will reshape the CRM industry and even prototyped department specific apps for smart phones. Unfortunately, the presentation was not recorded, but the slides are posted and include excellent research on the evolution of social media, mobile devices, and how it all relates to the CRM industry.

App Throwdown

Epicom engineer Danny Mulvihill presented his virtual whiteboard app for SugarCRM during the SugarCon App Throwdown. Danny was among the six finalists chosen to DEMO their app on stage. Each finalist had three minutes to impress the audience, and more importantly, a panel of top industry experts including Paul Greenberg, Brent Leary, Esteban Kolsky and Denis Pombriant, and Clint Oram from SugarCRM.

Danny represented Epicom extremely well and impressed the judges with his confident stage presence, his explanation of unique use cases for the app, and the app’s innovative interface. Congrats Danny!

The “Sugas”

The “Sugas”, SugarCRM’s nickname for its team, are my final highlight of my SugarCon experience. I’ve been working closely with SugarCRM’s marketing team for two years. Because of the relationships we’ve built with the Sugar team, we are more in sync from a marketing, customer service, and engineering standpoint. The people at Sugar are not only motivated to take SugarCRM to the next level, but they are creative, fun, and are representative of a great working relationship and partnership.

During the SugarCRM Partner Awards dinner, I was recognized among Sugar’s channel partners as the Most Creative Marketer in 2011. This came as a surprise to me and I was extremely honored to receive this award. I have a lot of respect for the Sugar team and look forward to working closely with them as both SugarCRM and Epicom continue to grow.

For more information about SugarCon 2012, email info@epicom.com

Internal SugarCRM Project: Time Tracking System

Epicom’s engineering intern, Jim Rybarski, is winding down his Spring semester with Epicom. He has completed several internal projects including a project status tracking system, the launch of our customer portal, and a new browser-side password encryption program. We asked Jim to contribute as a guest blogger on our site to share some insight to the work he has done for Epicom. We are breaking his posts up into a weekly mini-series where he will go into detail about the internal projects he completed. Let’s see what Jim had to say.

Until recently, engineers at Epicom kept track of billable time using Klok – a time tracking software to measure billable hours. The process was pretty clunky – engineers would have to create cases and keep track of time with that program; and then at the end of the day , they would manually input their totals into Epicom’s internal SugarCRM instance for each individual client.

When I came to Epicom as an Engineering Intern my first assignment was to create a time tracking system in Sugar. This would make things simpler and more efficient – engineers would just open up a case in our CRM and press the “Start Clock” button, work on it, and click the “Stop Clock” button. The time would be automatically summed for each client, and the nightly cron job would then determine how many billable hours to charge. We also decided to add a popup that asked the engineer to describe what they worked on every time they clicked the Stop Clock button.

With the time tracking system in place we can leverage all of Sugar’s functionality to do other things with this data. For example, we are thinking about creating a portal for clients so they can receive live updates on their project (which is why we added the description box), and they could see exactly how much time was spent on each aspect of their customization. This level of transparency would allow clients to know exactly what adding that extra button or creating some logic hook really cost them, and since we’re programmers this will be a good thing.

I had assumed when I was first hired that I was going to do this just in PHP and MySQL, and that it would take me a few hours at most. I couldn’t have been more wrong. I was pretty good at PHP when I started, and my SQL wasn’t terrible, but knowing nothing about Sugar presented a serious challenge. I went through developer training and read the developer manual, but it still took about a month of trying things out and looking at custom code written by other engineers before I really understood how everything fit together in Sugar. But now, if I had to do the entire customization from scratch, I’m very confident I could get the entire thing built in less than a day.

If you have any questions about the projects discussed in this post, please contact us at info@epicom.com.

New Features in Sugar 6.5

In this concise Tips & Tricks video, our software engineer, Aaron Wine, walks us through some of the differentiators of SugarCRM’s newest version, Sugar 6.5. He begins by going through some of the visual differences in the user interface, which include the positioning of the Module Tabs and the location of the admin tab.


The admin tab now has a drop down feature, which saves screen space. He also goes over the features of the new Plus control, which allows a user to quickly create modules.

In Sugar 6.5, users now have a full functioning calendar which supports recurring meetings, allows to drag-and-drop events, as well as an “invite” option to include others in an event.

He also explains the usefulness of the new Text Search and demonstrates its functionality. For more information on Sugar 6.5, email info@epicom.com.

Customizing Dashlets and Tabs in SugarCRM

In this short training session, Epicom’s software engineer Tommy Wiebell discusses dashlets and dashlet tabs in SugarCRM. Because dashlets are the first visual users are exposed to when logging into the system, it is important that they are customized accordingly.

Layout is the first step in customizing your dashlet tabs. You are given three layout options, which Tommy goes over in detail. “Everything is customizable per user, so whatever you select here will not be pushed out to any other user.”

You are then walked through the process of adding a new dashlet to a specific tab. He explains the ease of adding a notepad dashlet to keep “pen and paper” style notes. If you wish to add a report dashlet that you have created, that is also possible. In this case, Tommy, shows us how he adds a website to a dashlet. This allows an outside webpage to be navigated from within your dashlet screen.

He then explains the process of altering the display columns in the dashlet. “You can have multiple account dashlets, and break them out into different categories and set different filters based off of the type of data you want listed.”  There is even an auto-refresh option, making sure you are always shown the latest data.

Now that you know how to change the dashlet display columns, you might be aesthetically inclined and want to alter the positioning of the dashlets as well. “It’s just a simple drag and drop,” Tommy explains.

The last topic covered in this video are dashlet pages and how to add a custom page. For more information on dashlets and tabs in Sugar, email info@epicom.com.

SugarCRM Code Search Engine

Often times you need to find a specific chunk of code in SugarCRM’s code base.  Traditionally, developers will result to using grep or maybe their IDE to try to track down whatever they are searching on.  However, this process tends to be slow; it can take several minutes for grep to search through all of the code.

Epicom has recently launched a search engine that returns results almost immediately.  Most searches come back in less than 5ms.  You can now quickly run a search across many versions of Sugar simultaneously to track down what you are looking for.  Once you get the result back you can then filter down the results to only a certain version of Sugar or to a particular file type (like php, tpl, css or js).

The initial results page displays both the filename as well as all of the lines that contain your initial search phrase, highlighting the actual search term.

If you click on the filename, you are redirected to the full source code for that page which will highlight both the lines that contain your results as well as the actual phrase.


Not only are you able to quickly search and find all references to a certain function, you can also use the search engine to search trends in the Sugar code base.  Here are some example cases:

  • curious how many references to jquery there are in different versions? (hint – 6.5 has significantly more references than any previous version)
  • how often does Sugar use heredoc? (they’ve been steadily removing heredoc references since Sugar 4.5.1, but they just started using EOT (compared to EOQ from before) on sugar 6.5)
  • how often do they use print_r? (that has slowly been on the rise, but probably growing much slower than the overall codebase)

We hope you find this as a useful tool that will save you time when looking for functions and related code in your SugarCRM code base.  

http://codesearch.epicom.com/

Adding Multiple Quote Templates to SugarCRM

Choose your PDF output based on quote type.

From Sugar, users can create and export quotes to a PDF. A common customization that Epicom does is customizing PDF outputs. This customization gives clients free-range on how fields from Sugar will look on the PDF. This look, however, can sometime vary based on the product or service being quoted. For some of our clients, the CRM fields, data, and design of a quote need to be completely different PDF outputs based on the product.

Epicom solved this by building multiple PDF outputs into Sugar’s Quote module.

 

Epicom added a custom field with a drop down list for users to choose the desired quote type. Based on the quote type chosen, a different set of fields appear, and the PDF output changes.

As a result, a quote for training will look different than a quote for membership dues, and the fields pulled into the PDF will vary along with the design and layout.

The end result is a simple user interface for creating various PDF outputs. For more information on adding multiple quote templates to Sugar, email info@epicom.com.

SugarCRM User Group: Email Campaigns Part III Q&A

Recently, Epicom’s Engineering Manager, Eric Wikman, hosted the third and final part of a III part online training series. This portion of the series focused on how to schedule emails to build your own nurturing campaign in Sugar. Additionally, Eric went through the process of integrating solutions to extend your email marketing. The session wrapped up with user Q&A. Here are some of the most common questions we received and answers from the session.

Q. I have an error message that says, “The scheduler is not set up for bounced mail.” What does that mean and how do I set it up?

A. Schedulers are used to schedule jobs such as dispatching campaign Emails and importing new inbound email from a POP3 email mailbox.

To set this up, go to the Campaigns module and select View Diagnostics page. This is where it will check that your email and scheduler are set up correctly. If the scheduler is set up, a green check mark will appear on the left-hand side of the screen next to “Schedulers Detected.” If it is not set up, it will display a red X. You must be an administrator to adjust this.

Next, click on “Administration” at the top-right of your screen. Then click on Scheduler on the left column in the System section. Select the scheduled event “Run Nightly Process Bounced Campaign Emails” that is listed as “Inactive” under Status. Then click Edit and change the Status on the drop down menu from Inactive to Active. Click Save. Repeat the last two steps for “Run Nightly Mass Email Campaigns”.

NOTE: You must have a Cronjob setup to run all of your automatically scheduled jobs. Check with your server admin to make sure this is setup correctly on your server.

Q. If you use a Gmail or Microsoft email client, how do you set that up in SugarCRM when configuring your email?

A. Go to the Administration tab in the top-right menu bar in your CRM screen. Under Email, click “Email Settings.” Select your Email provider and enter the correlating email address and username.

Q. When you send out the campaign, what is the difference between a “soft bounce” and a “hard bounce” in Sugar and do those emails go to different locations?

A. A soft bounce means the email was not delivered because the mail server was temporarily unavailable. However, it will continue to try and send the message. A hard bounce is when an email account no longer exists or is invalid.

Note: Sugar is going to monitor your bounced email address and will flag those records in your View Status page as problematic.

Q. How would you resend the same email a second time to a revised target list, filtering out those who have already opened the email or opted out of the original email?

A. You are able to add additional people to the original target list and resend the same campaign message. When you resend the campaign, Sugar will automatically suppress those who have already opened the email without having to manually remove them from the target list. Though useful, this process will make your metrics less accurate (i.e. the total volume of “Attempts” will double).

A target list can specify individuals who either need to be included in a campaign or excluded from a campaign. You can create one of the following types of target lists:

  • Default – A list of people who are campaign targets and receive the campaign email.
  • Seed – A list of people who need to receive the campaign email but must not be tracked as potential leads. Typically, these are individuals who must approve the campaign before it is launched.
  • Test – A list of people who receive the campaign email to test how different email clients display the campaign message before you send it out to the default list.
  • Suppression List – A list of people you want excluded from the campaign email recipient list. Typically, these are people who chose to opt out of receiving your campaign message. Suppression lists can be by ID, email address, or domain.

NOTE: Test and seed lists are ignored in email tracking statistics.

For further information on any of these topics, email info@epicom.com. To view this portion of the series, click here.

1 2 3 4 5 6 7 8 9 10 11 12 13 14