Salesforce Call Center tips: Display Call Duration in Minutes

In this post we showed you how to add Call Duration to a Salesforce Activity page.  Unfortunately, the only existing field available for you to add and display on your Activity page gives you call duration in seconds.  That might work just fine for you and your organization, but some of our users wanted to display call duration in minutes.  Here’s how to do it.

As the Salesforce Administrator, navigate to Setup-> Customize-> Activities -> Add Custom Fields.

Select New:

Select Formula for your data type and then click Next:

Enter in the name you would like to give the field (Sarah used “Call Duration(Min)” here.  Then select Text and then Next:

Click Advanced Formula and then copy and paste the text below this image into the highlighted space shown below.  Once you’ve pasted it, click Next:

IF((MOD((CallDurationInSeconds )/60,1)*60) > 10,
TEXT(FLOOR( (CallDurationInSeconds )/60)) + “:” + TEXT( FLOOR(MOD((CallDurationInSeconds )/60,1)*60) ),
TEXT(FLOOR( (CallDurationInSeconds )/60)) + “:0″ + TEXT( FLOOR(MOD((CallDurationInSeconds )/60,1)*60) )
)

IF((MOD(CallDurationInSeconds/60,1)*60) > 10,

TEXT(FLOOR(CallDurationInSeconds/60)) + “:” + TEXT(FLOOR(MOD(CallDurationInSeconds/60,1)*60) ),
TEXT(FLOOR(CallDurationInSeconds/60)) + “:0″ + TEXT(FLOOR(MOD(CallDurationInSeconds/60,1)*60) ))

Select the profiles you wish to be able to see this field.  Finally, click Save.

Navigate to a task and you should now see “Call Duration (Min)” displayed on that task page.  Cool!

In the image above, you can now see that we’ve got two Call Duration Fields;  one displays duration in seconds (we showed you how to display in this post) and one outlined in red that displays call duration in minutes (this is the custom field we just created).

If you’d also like to see this field on your Contacts’ Activity History page, then you’ll need to customize the Contact Page Layout.  Stay tuned for more!

InGenius Software Webinar Series

We will be starting our InGenius Connector CRM Webinar series this week on Friday May 11  at 11am EST!  Anyone who wants to see our software in action can sign up here: http://go.ingenius.com/webinars.

The first webinar will show you InGenius Connector for Salesforce.  Our Product Marketing Specialist and Salesforce wiz, Sarah, will show you how the application makes the job of sales agents and managers easier.

Check back in to our InGenius Connector CRM Webinar series regularly!

InGenius Connector for Salesforce Call Center CTI and Cisco – in Firefox and Chrome!

We’ve released support for our InGenius Connector Salesforce plugin on Cisco platforms, and we couldn’t be more pleased about it!  This solution is exciting for two reasons,

1) It supports Cisco Call Manager and,

2) It makes use of Salesforce call center version 4.

What does that mean?  The InGenius Connector for Salesforce and Cisco works in Firefox and Chrome in addition to Internet Explorer!

We know how happy this will make all you Firefox and Chrome users, and we want to let you know that multi-browser support for InGenius Connector and Salesforce on our other platforms (such as Broadsoft, Mitel, Polycom, Aastra, Asterisk and softphone) is also coming very soon.

To try out InGenius Connector for Salesforce and Cisco Call Manager, visit our website and download a free trial.

Receive desktop notifications for voicemail with InGenius Connector Softphone

To make sure that you always see your softphone voicemail notifications, navigate to the Advanced settings in your softphone profile:

Click on the General Settings tab in the Advanced Softphone Configuration Window:

Once you fill in the required information, you’ll be able to access your voicemails from the desktop!  Sometimes Windows hides these notifications in the systray.  To make sure that you always see your InGenius Connector notifications, you can do the following:

Click on the little upward facing arrow in the Windows system tray and select Customize…

From here you can select which icons you want to always see in the systray.  If you ‘show icon and notifications’ for InGenius Connector, you will always see whether or not you have voicemails waiting for you:

Let us know if this was helpful, or if you have other questions!

Salesforce Call Center Tips: Add Call Duration to your Activity Page

One of our users asked how to add the call duration field onto their activities page.  We thought it could be helpful for others too.

To add the call duration field onto your Activities pages, you’ll need to log into Salesforce as a Salesforce Administrator.

Navigate to YourName-> Setup-> Customize-> Activities.

Select Task Page Layouts and then look for “Call Duration” at the top of the Task Page Layouts screen.  You can then drag “Call Duration” down to an open spot on the Task Page, and shuffle things around until you get a layout you like.  Make sure you press Save at the top of the “Console Interation” space.

Navigate to a lead or contact page where you already have call activities, or create a new call activity by making a test call.  Open up the Task page, and look to find your “Call Duration” field

You should now see a Call Duration field on your Task page!  The Call Duration will be populated by seconds.

You can use these steps to add any available fields onto to the Task page.  To check what fields you have available, navigate to YourName-> Setup-> Customize -> Activities-> Task Field. You can add any of these fields into your Task page.  If there are additional fields you need on your Task page, check out how to create Customized Fields in Salesforce.com

Have a good Monday everyone!

Salesforce Call Center Tips: Manage your screen pops

If you’re using our InGenius Connector for Salesforce, you are familiar with “screen pops” – the automatic navigation to the lead or contact who is calling in.  This can be really helpful, but you may not always want incoming calls to pop to a different Salesforce screen -  or – you might just want the pop to open in a new window or tab.  This post will show you where to make changes to your Salesforce screen pop settings.

As usual, when you want to make changes to the Salesforce call center, you must log in as the Salesforce Administrator, or have your Salesforce Administrator make these changes for you.

Navigate to Setup-> Customize -> Call Center. 

Usually, we go into the Call Centers tab shown above.  This time we’ll click on the Softphone Layout option

Select Softphone Layouts, and then click through the “Introducing Salesforce CRM Call Centers” splash page if it appears.

On the SoftPhone Layouts page, click on Edit next to the Standard SoftPhone Layout option, or whichever Softphone Layout is selected as “Default”.

Scroll to the bottom of the page below the heading “CTI 2.0 or Higher Settings.”   This is where you can make changes to the screen pop settings.  Click on Edit next to any of the settings to see your options, and test out some different configurations to see which works best for you!

From the support desk: Adding licenses and profiles

Maybe your trial license has expired, maybe you are adding a softphone profile, or maybe you’ve decided to add a new CRM integration.  Whatever the case, we get lots of questions about what do when when you’ve got a licensing issue.  This post will help you out.

To add a new license:

Once you’ve received your license from InGenius Software by purchasing through our store, requesting a free trial, or writing in, you just plug it into the following spot:

It is a good idea to restart the application at this point.  If you’ve entered in a license for a CRM plugin, once you restart InGenius Connector, you’ll need to configure or log onto the CRM.

If you’ve entered a license key for a new phone profile, you’ll need to create a new profile.

To create a new profile:

Navigate to Settings->Add/Edit Phones in the InGenius Connector toolbar, then click the icon with the yellow sun.

This will bring up a New Profile box where you need to name your location profile and select your phone model from the drop down menu:

Fill in the information on the configuration page.  You may need contact your network administrator for some of these details:

Once you press Test a log box will open.  This log box gives you a message to let you know whether you are successfully connected, or if you need to double check some of your information:

When you see a “Successfully Connected” message, you’re all set!

InGenius Connector TAPI plugin

O-Zone Tech created this great video on using our InGenius Connector TAPI plugin across a variety of CRM packages:

Thanks O-Zone Tech!

You’ll notice that O-Zone Tech is using the TAPI plugin with Aastra Connector.  There is similar functionality across all of our supported phone profiles.

The TAPI plugin is one of our most popular products because it can work with any TAPI enabled CRM.  TAPI means Telephony Application Programming Interface.  It lets you connect your phone (or softphone) and computer to talk to other phones.  Neato!  If you aren’t sure whether your CRM has TAPI, you can check with us or with your CRM‘s support group.

Features of our InGenius Connector TAPI plugin include click-to-dial from inside your CRM, screen pops on incoming calls that have a matching record, and call logging.  These features vary somewhat depending on the CRM you’re using, so get in touch to test it out with a free trial!

InGenius Connector for Microsoft Dynamics CRM – in Houston!

It’s trade show season and starting this weekend, the InGenius Team is off and running.  First up is Convergence 2012, the Microsoft show that starts this weekend in Houston.  InGenius will be at booth 2416 to show off our updates to the InGenius Connector for Microsoft Dynamics CRM plugin.  In case you aren’t going to make it to Houston, or if you want a sneak peak, here’s what we’ll have in store:

Updates to InGenius Connector for Microsoft Dynamics CRM have made it a very easy install.  All that is required is some phone profile information depending on the type of phone or server you are connecting to, and your Microsoft Dynamics CRM credentials.

All of the telephony control features that make your CRM so much more usable are available in InGenius Connector Microsft Dynamics CRM plugin.  There’s click to dial on all stored numbers in your MSCRM leads and contacts:

Record pops on an incoming call …

Call control and note taking space for inbound and outbound calls …

… And automatic logging in the contact record history, and in the reports!

We’re really pleased with the updates to InGenius Connector for MSCRM and thrilled to be showing at Dynamics 2012.  If you aren’t in Houston for the show, stop by our website for more information or get in touch for a free trial!

We’re Winners!

That’s right, our InGenius Connector for Salesforce made us the winner of TMC Net‘s 2011 Unified Communications Product of the Year Award. Good for us!

Give one of our AWARD WINNING InGenius Connector CRM integrations a try!  We offer free 15-day trials of our integration products and we are happy to walk you through the setup and installation process.  Thanks for the prize TMC Net!

Add Users to the Salesforce Call Center

This is another post related to optimizing your Salesforce call center.  Adding users to the Salesforce call center is pretty standard stuff – it’s covered in our PDF help guides as well as on the Salesforce website itself.  I thought I’d toss it up here just so everything is together.

Like the other edits we’ve made to the Salesforce call center, you must be a Salesforce Administrator or have Administrative privileges on the call center in order to make these changes.

First, navigate to Your Name –> Set up –> Customize –> Call Center –> Call Centers and click “Continue” if it appears.  You will now be on the All Call Centers Page and by this point, you will see the InGenius Call Center Adapter listed.  If you don’t, get in touch and we’ll send you a free trial.

Click on the InGenius Call Center Adapter and then scroll to the bottom of the page and select Manage Call Center Users.   Here, you will see a list of users who have already been added to the InGenius Connector Call Center, if there are any.  A user’s name must appear in this list in order to use the Salesforce call center.

If the name is not listed, don’t panic!  Simply click Add More Users and then search for your user by setting the fields to ‘Name” or “Full Name” etc., and then “equals.”  I find this search page a bit difficult, so if your user’s name doesn’t pop up at first, try fiddling with the search fields.

Once you successfully located your user, select their name and click “Add”.

That’s it!

Clone the Salesforce Call Center

Now that you know how to make changes to the call center wrap up codes in Salesforce, you might find yourself with a long list of wrap up codes.  Maybe you got code happy and are deciding to pare it down, or maybe you really need all of those options for the various groups in your office.  If this is the case, you can clone the call center to give different people different call wrap up code options.

Cloning the call center means that you create a duplicate version of the InGenius Connector for Salesforce call center.  You’ll then have two (or however many clones you create) call centers that can be customized to fit the different needs in your office.

To clone the call center, you’ll have to be a Salesforce Administrator.  Just like in the last post, you’ll navigate to Your Name -> Setup -> Call Center -> Call Centers -> Continue (if it appears):

Click directly on the InGenius Call Center Adapter link.  This will open up the InGenius Call Center Adapter page.  At the top of this page you can select the options to Edit, Delete or Clone the Call Center.  If you clicked on Edit, you could customize the call wrap up codes.   This time however, you’ll click on Clone.

This will bring you to a new screen with a new call center, containing all the same information as the original call center.  Give it an internal name, and then proceed with any customizations to your clone.

Hit Save and you’ve done it!  Now you have TWO call centers with different customized wrap up codes and you can select which of your Salesforce call center users are added to the different call centers.  Documentation on how to add users to the call center in our PDF Salesforce Integration Administrator Guide, but I’ll also post it here next time as well.

Thanks everyone – hope your March is off to a stellar start!

Customize Call Wrap-Up Codes in the InGenius Connector for Salesforce Call Center

This is a quick and easy customization to make to your call center.   Customized wrap up codes can save time for you and your staff, and will result in better reports from your call center data.

To customize the call wrap-up codes in your InGenius Connector for Salesforce call center, you’ll have to be a Salesforce.com Administrator – or have Administrative privileges on the Salesforce.com call center.

Navigate to Your Name -> Setup -> Call Center -> Call Centers -> Continue (if it appears):

Once you arrive at the “All Call Centers” page, click on Edit next to “InGenius Call Center Adapter.”

You’ve arrived!  This is where you’ll make changes to the standard wrap up codes.  You can add up to 20 customized wrap up codes based on what your users seem to entering most frequently into the notes section.  These codes will appear as the “Call Result” field in the call center report, making it easy to identify trends in your call center data.

Hope that’s helpful for you!  Are there other Salesforce.com call center customizations you’d like to see?

CRM 101: How to pick the CRM that fits your business

Sometimes we get questions from customers who are considering migrating their office over to a business telephony system and a CRM solution.  They like the idea of one-stop for information capture, maintaining detailed contact records and contact activity history, appointment scheduling, and integrated telephony.  But choosing a CRM from the dozens of options now on the market proves to be a source of confusion.

If you’re new to CRMs, how do you know which one is right for you?  I find there are really two basic questions to get started:

  1. What I am using this for?
  2. How much do I want to spend?

First, why do you want a CRM?

Traditional CRMs are designed for the sales environment.  They use sales terminology, they are set up to drive contacts through the opportunity pipeline, and they do a great job of tracking actual and potential dollar values of each record.  Salesforce.com, Microsoft Dynamic CRM and Tigerpaw are all sales oriented CRMs that are very popular, user friendly and full of great features.

Not everyone is using their CRM in a sales environment.  Some businesses are more interested in different information. For example, how many walk in clients does the office receive each day?  What are the most common topics that people email in about?  Can you have your sales team, your support team and your development team working out of the same platform?

Think about the primary information you want your CRM to capture and go from there to see if there are specific solutions. Salesforce.com is one of the most popular, most robust and feature-laden sales and marketing oriented CRMs.  But there are others on the market that cater to different niches.  For example, Vanilla Soft focuses specifically on helping agents boost sales calls.  MaxHire is a great option for recruiting firms looking to track their opportunities.  Blackbaud markets itself as a CRM for fundraisers and non-profits.  Chances are, there is a tailored solution out there for your need.

Second, what is the cost?

The pre-packaged, tailored solution might be out there but be too pricey for you.  CRMs vary widely in cost and some of them will seem quite expensive to small businesses.  Subscription costs are usually per user, per year, although monthly subscriptions exist too.

Most CRMs have a free trial option, if not an entirely free basic version.  Always take advantage of free trials and check out free versions.   If you need more features than your basic version offers, check with the support team and see if they’ll let you pay by feature rather than forcing you to switch to a whole new version.

Zoho CRM offers paid add-ons to their free version so that users don’t have to upgrade to more expensive professional versions.   If you’re a non-profit, ask about non-profit pricing.

In addition, if you’re even a little bit tech-savy, you can do a lot with the open source CRMs like SugarCRMOpenCRX and V-Tiger.  If that thought terrifies you – hire an intern to do some customization!

If you’re still struggling, we’re happy to answer questions about the CRM options on the market, although we can’t promise to know them all.  Good luck with your CRM search!

Creating workflow rules in Salesforce

Happy Valentine’s Day everyone!

A client recently asked about how to automate task creation based on the result of a call in the call center. This is what we recommended.  In order to make these changes and set up a workflow task, you’ll have to be a Salesforce Administrator on your company’s Salesforce.com account.

First, navigate to the Setup under your name in the top right hand corner of Salesforce, and then to Create -> Workflows and Approvals -> Workflow Rules under App Setup on the left. If a splash page appears, just scroll down and click continue. You should wind up here:

Now you’ll create a new rule – this rule is the task creation trigger.

Not all of the objects will give you the option to select “Call Result,” so choose accordingly! Click next to move on to the next page:

In the example above, the call result “Need to follow up” will follow a rule called “Reconnect,” that we’ve just created. Hit Save and Next to move on to the task creation.

In the page above, you will define what action is going to be taken. In this case, I’ve chosen to create a new task. This will take me to the next screen, which lets me define the task.

Here I can select who the task will be assigned the task, when the task becomes due, and other task descriptions.

You can also indicate whether the workflow rule is triggered immediately, or if there are time dependent workflow rules. You can add different actions to the same workflow rule too – this can really ensure that nothing gets missed!

The last step is to head back to the Workflow Rules page and Activate your rule:

So that’s how you make workflow rules and automatic tasks based on the Call Center call result in Salesforce.com.  We’re still experimenting with the best setup here to keep our developers, support, sales and marketing teams connected. If there are specific tasks or workflow rules that work well for your company, let us know.

Nice overview of all of Microsoft Dynamic’s 4.0, and 2011 Update Rollup releases

If you use Microsoft Dynamics, you’ll understand that it can be complicated to know if you are running the latest version, and when to update. Additionally, Microsoft released a broken update Jan 12, 2012, which forced some users to have to completely re-install.

Microsoft released a blog entry recently, in order to clear all this up:

Microsoft Dynamics CRM 4.0 and 2011 Update Rollup Release Dates, Build Numbers, and Collateral
http://blogs.msdn.com/b/crminthefield/archive/2012/02/10/microsoft-dynamics-crm-4-0-and-2011-update-rollup-release-dates-build-numbers-and-collateral.aspx

Project Management with Trello

At InGenius we typically have quite a few projects on the go, and a lot of very busy developers.

One of the difficulties we face is project tracking. Making sure that:

  • every developer is working on the most pressing items,
  • our QA department knows what to focus their testing efforts on, for each build,
  • our sales people know when new builds, with new features are coming out.

We’ve tried many tools for keeping track of our projects, including:

  • Complicated spreadsheets, with a grid showing each developer, and all projects, saved in a common directory,
  • using Yammer.com and asking developers to yammer about what they’re working on,
  • Daily meetings, making sure everyone’s focused,
  • Online tools like Basecamp.com,
  • Using our Wiki to say what developers are up to, and should be doing,
  • Whiteboards at each office, with individual developer priorities,

And, none of it worked very well. Developers don’t like meetings, don’t like yammering, don’t like anything that gets in the way of what they should be focused on.

Last fall, we started using Trello.com, a new FREE online product from Fog Creek Software – the same people that build the terrific Fogbugz bug tracking system we use here at InGenius. We’re all thrilled with the results!

Trello is a deceptively simple application. It presents you with a page called a “board”, and the board contains multiple lists.

Each list can have a title, and multiple entries, known as cards. You can drag cards from list to list, and you can re-order lists by dragging them as well.

Cards are the basic unit within Trello. Cards generally move up and down in a list, and from list to list, within a board.

Each card has a title, and when you click on it, it flips over to reveal a description, and a set of notes. People can add comments to a card, assign labels, assign a card to a particular worker, or vote on a card.

At InGenius, we use a similar setup to Fog Creek’s development board – we have a main board for all the development in our company, and have lists for:

  • Known Issues,
  • Ideas,
  • Next Up,
  • In Progress,
  • Implemented,
  • a list for each release.

Items generally move across, from left to right as they progress from ideas, to being implemented, to getting moved to a release.

Using Trello has been a godsend for both the developers and senior staff at InGenius. We can now easily see, in a single view, everything that’s in progress in the company, and can easily move cards around to indicate their priority.

Developers can easily make notes about their progress, which we review in a once-a-week meeting to make sure everyone’s on track. Each card contains a description of the bug or feature. Developers can easily add notes about their progress, and can move a card to the “Implemented” list when they’re done.

And, our QA staff can easily look at the lists for each release, to see which new features have been implemented, so they know where to focus their testing efforts.

Trello has become the focus of our developer meetings, allowing us to keep the meeting to 15-20 minutes and make sure everyone is on the right track.

We’ve learned a few tricks as we’ve used Trello.com:

  • Don’t overload Trello with too many items. In our case, we keep the “high level” items in Trello, and leave most of the detail work in FogBugz. The items we track in Trello are generally the things that we’ll highlight in each product release, and major, customer-affecting issues. The balance between Trello and your bug tracking tool is hard to determine.
  • make sure that card titles are succinct and descriptive
  • Make sure that developers update the cards regularly
  • Use labels to show which cards are bugs, and which features have been tested, or need documentation updates,
  • Assign cards to developers by dragging developer icons over to a card,
  • Use Trello in developer meetings as a focal point, and to show the team how the tool should be used,
  • Encourage higher management and sales to use Trello too.
  • Have a look at Trello’s development board for ideas and tips – and it’s fun to watch features move across, and out into a release!

Of course, Trello is not yet perfect, but new features are being implemented every week.

Our wish list includes:

  • Ability to move lists from board to board,
  • Better functionality in the iPhone and iPad applications,
  • Better management of company members, and management of which company members are allowed access to a board (this is already much improved)
  • Tighter integration with FogBugz

 

Automatic creation of Salesforce.com leads from product registrations

Our company recently started using Salesforce.com as its CRM system. We’ve all been astonished at the change it has made to almost every facet of our business. We’re on top of leads, interacting with customers, and tracking every call now using our integration between InGenius Connector and Salesforce.com.

But, we wanted to do more – we wanted to set up a system where we could call customers who have downloaded our software, and help them with the installation and configuration of the application. As with most telephony applications, it can be complicated to set up because of the many different types of phone systems out there.

So, we came up with a plan:

  1. User obtains a trial key from any of our download pages,
  2. The registration system sends an email to the user, with their trial key,
  3. The registration system also sends an email to a special email address at Salesforce.com, containing the registration info,
  4. Some custom Apex code at Salesforce.com parses the email, and creates a lead, and a task showing what the user downloaded.

Details:

So, here’s what we did, in more detail:

1) Create Email

We modified our registration system to send an email when a trial key is requested. The email looks like this:

Subject: [Trial Key]
Source:AUTOMATION
 Campaign:
 FirstName:Bob
 LastName:Smith
 Email:bob@bob.com
 Phone:555-1212
 Company:Bob's Baker
 Country:Canada
 Industry:
 Dealer:YES
 Product:IC
 Coupon:11111-22222-33333-44444-5555
 Platform_OS: Windows
 Platform_CRM:Salesforce.com
 Platform_TELEPHONY:Asterisk

2) Create Apex Class

We created an Apex Class to handle the incoming mail. The class parses the incoming email, then does the following:

  1. Checks to see if there’s a contact with this email address,
  2. Checks to see if there’s a lead with this email address,
  3. If not found, then create a lead with the user’s info,
  4. Create a task with the details of the product the user has downloaded. Creating a task is convenient because we can automatically handle the case where a user trials more than one product – they just get created as tasks on a lead/contact.

The Apex code looks like this:

Note that the variables ending in __c are custom variables in our Salesforce.com installation.

global class InGenius_Integration_Registration_Email implements Messaging.InboundEmailHandler {
 global Messaging.InboundEmailResult handleInboundEmail(
   Messaging.InboundEmail email,
   Messaging.InboundEnvelope envelope) {
    Messaging.InboundEmailResult result = new Messaging.InboundEmailresult();
    String EmailPlainText= '';
    string EmailSource;
    string EmailCampaign;
    string EmailFirstName;
    string EmailLastName;
    string EmailEmail;
    string EmailPhone;
    string EmailCompany;
    string EmailCountry;
    string EmailIndustry;
    string EmailDealer;
    string EmailProduct;
    string EmailCoupon;
    string EmailPlatform_OS;
    string EmailPlatform_CRM;
    string EmailPlatform_TELEPHONY;
    Boolean found = false;
    ID ContactId;
    Lead insertedLead;
    System.debug('Email Received from: ' + envelope.fromAddress + ' (' + email.subject + ')' );
    // Ignore emails with the incorrect subject
    if( email.subject != '[TRIAL KEY]' ) {
        System.debug('Email rejected: Wrong Subject(' + email.subject + ')' );
        return result;
    }
    try {
        EmailPlainText = email.plainTextBody;
        String[] emailbody=email.plainTextBody.split('\n',0);
        System.debug(emailbody);
        // THIS IS NOT a terrific way to parse the email, but it works...
        // If the email format changes, by even ONE character, this will fail.
        EmailSource =             emailbody[0].substring(7);
        EmailCampaign =           emailbody[1].substring(9);
        EmailFirstName =          emailbody[2].substring(10);
        EmailLastName =           emailbody[3].substring(9);
        EmailEmail =              emailbody[4].substring(6);
        EmailPhone =              emailbody[5].substring(6);
        EmailCompany =            emailbody[6].substring(8);
        EmailCountry =            emailbody[7].substring(8);
        EmailIndustry =           emailbody[8].substring(9);
        EmailDealer =             emailbody[9].substring(7);
        EmailProduct =            emailbody[10].substring(8);
        EmailCoupon =             emailbody[11].substring(7);
        EmailPlatform_OS =        emailbody[12].substring(12);
        EmailPlatform_CRM =       emailbody[13].substring(13);
        EmailPlatform_TELEPHONY = emailbody[14].substring(19);
        if( EmailDealer=='YES' )
            EmailDealer='Dealer';
        else
            EmailDealer='End User';
        System.debug(EmailSource);
        System.debug(EmailCampaign);
        System.debug(EmailFirstName);
        System.debug(EmailLastName);
        System.debug(EmailEmail);
        System.debug(EmailPhone);
        System.debug(EmailCompany);
        System.debug(EmailCountry);
        System.debug(EmailIndustry);
        System.debug(EmailDealer);
        System.debug(EmailProduct);
        System.debug(EmailCoupon);
        System.debug(EmailPlatform_OS);
        System.debug(EmailPlatform_CRM);
        System.debug(EmailPlatform_TELEPHONY);
    }
    catch( exception e4 ) {
        System.Debug('ProcessTrial Failure: Could Not parse email');
        return result;
    }
    // Try to lookup any contacts based on the email from address
    // If there is more than 1 contact with the same email address,
    // we just use the first match
    try {
        // Does a contact exist with this email?
        List<Contact> contactList = [Select Id, Name, Email From Contact Where Email = :EmailEmail Limit 1];
        if( !contactList.IsEmpty()) {
            ContactId = contactList[0].Id;
            System.Debug('Found Existing Contact:' + contactList[0].Name);
            found = true;
        }
        else {
            // Does a Lead exist with this email?
            List<Lead> leadList = [Select Id, Name, Email From Lead Where Email = :EmailEmail Limit 1];
            if( !leadList.IsEmpty()) {
                ContactId = leadList[0].Id;
                System.Debug('Found Existing Lead:' + leadList[0].Name);
                found = true;
            }
            else {
                // Create a Lead with this email
                Lead leadToInsert = new lead(
                    FirstName=EmailFirstName,
                    LastName=EmailLastName,
                    email=EmailEmail,
                    Company=EmailCompany,
                    Country=EmailCountry,
                    Industry=EmailDealer,
                    Status='Working - Key Issued',
                    Phone=EmailPhone,
                    LeadSource=EmailCampaign,
                    Product__c = EmailProduct,
                    TrialKey__c = EmailCoupon,
                    Phone_System__c=EmailPlatform_TELEPHONY,
                    Users_CRM__c=EmailPlatform_CRM);
                insert(leadToInsert);
                ContactId = leadToInsert.Id;
                System.Debug('Created Lead' + EmailFirstName + ' ' + EmailLastName + ' ' + EmailCompany + ' ' + ContactId);
                found = true;
            }
        }
    }
    catch (exception e2) {
        System.Debug('ProcessTrial Failure: Could Not Create Lead:' +  EmailFirstName + ' ' + EmailLastName + ' ' + e2);
    }
    if( found ) {
        try {
            // New Task object to be created
            Task[] newTask = new Task[0];
            // Add a new Task to the contact record we just found or created above.
            newTask.add(new Task(
                Description =  EmailPlainText,
                Priority = 'Normal',
                Status = 'Key Issued',
                Subject = EmailProduct,
                Product__c = EmailProduct,
                RegistrationCoupon__c = EmailCoupon,
                //IsReminderSet = true, // optional, set a reminder
                //ReminderDateTime = System.now()+2, // Set reminder for 2 days in the future.
                WhoId =  ContactID));
            insert newTask;
            System.debug('New Task: ' + newTask );
        }
        catch (exception e3) {
            System.debug('ProcessTrial Failure: Create New Task Failed: ' + e3 );
        }
    }
    else {
        System.Debug('ProcessTrial Failure: Could Not Create Lead:' +  EmailFirstName + ' ' + EmailLastName);
        return result;
    }
    result.success = true;
    return result;
 }

3) Configure Email Service

Once the Apex class is created, then you need to go to Develop -> Email Services and add a new Email Service to handle the incoming mail. This is where you’ll get the unique email address. Note also, that you may have to adjust the permissions, and adjust settings for which emails you accept mail from. By default this is quite locked down by Salesforce.com.

4) Last Step:

We hired Katy! Katy looks after calling customers when they’ve downloaded a trial version of our software, and make sure that the install goes smoothly. Thanks Katy!

Further Notes:

  • We are planning to add additional code to update the contact once a user purchases our software.
  • We are planning to improve the email parsing.
  • We had quite a few issues getting the debugging to work reliably at Salesforce.com. It is not clear how to enable debugging, and how to extract debug logs.

InGenius Connector and TAPI

TAPI (Telephony Application Programming Interface) is an API provided by Windows computers for the control of telephones connected to your PC. There’s a great overview of TAPI at Wikipedia if you want to learn more.

InGenius Connector, and its cousin Mitel’s Unified Communicator Express can use TAPI in two ways.

  1. InGenius Connector can appear as a TAPI telephony provider to CRM systems,
  2. InGenius Connector can make use of TAPI to control your desktop phone (Connector as a TAPI consumer).

InGenius Connector as a TAPI provider for connecting to CRM systems

 

This is also called the TAPI Plug-in, and is an optional component of InGenius Connector and Unified Communicator Express. This feature is enabled for an existing installation of our product by simply entering a license key. When you’ve done this, InGenius Connector will now appear in the list of TAPI devices that are available on your computer, when you use a TAPI enabled CRM.

This mode is commonly used with CRMs such as Act, Maximizer, and Outlook and many custom CRM systems. From within your CRM, select the InGenius Connector from the list of TAPI devices on your computer, and your CRM will now be able to place calls using the telephone connected to InGenius Connector. You’ll also be able to see the caller ID for incoming calls, and the CRM will be able to pop the appropriate CRM contact automatically. Note that the functionality provided varies between CRM’s. Some CRM’s may not provide the screen-pop functionality, for instance.

On the telephone side of things, the TAPI Plugin is commonly used with Mitel phone systems (using Unified Communicator Express or Unified Communicator Advanced, with the appropriate InGenius plugin), as well as users of Polycom phones, Aastra Phones, Asterisk PBX’s, and Broadsoft PBX’s – systems which are generally quite difficult to control via TAPI.

Using InGenius Connector with a TAPI-enabled phone system

The other way to use TAPI with InGenius Connector is to set up a phone profile within InGenius using the TAPI phone profile (which will be available within InGenius Connector in the first Quarter of 2012). In this case, the customer has a phone system that provides a TAPI interface, and want to use the features of InGenius Connector to control their phone system, or they want to use an InGenius Connector CRM integration with their phone system.

Users will have to install InGenius Connector, as well as the TAPI service provider which is provided by the telephone system manufacturer. In the case of Cisco, this is available for free, and can be downloaded by the Cisco Call Manager administrator.

We are currently developing TAPI support for Cisco phone systems, and will be certifying other phone systems soon.

Our customers generally use this option to connect their TAPI-enabled phone system to Salesforce.com, Microsoft Dynamics CRM, and Sugar CRM.

Salesforce Call Centers

This post is going to give you some information about the Salesforce call center: what does it do and why might your business want it?

First and foremost though, what is a call center?   The Salesforce call center is basically a softphone within Salesforce.  It typically appears in the upper left hand side of the Salesforce window, like this:

“No big deal,” you might say, “Softphones are old news, I already have Skype and Google Talk!”.

Ok, but the cool part about integrating a softphone into the Salesforce Call Center is all of the options for information tracking and capturing.

For example, you can quickly see what records are associated with a call.  Incoming calls will pop a screen that shows the caller ID, call history, and opportunities linked to the caller:

Phone numbers in Salesforce will become clickable so that you can click-to-call rather than manually dialing.  Whew, because that was getting pretty physically strenuous:

Salesforce keeps track of calls made, along with any of the information entered by salespeople.  So you can start tracking the number of calls you make or your team makes, the call duration, and call result, without manually creating new records:

That’s all pretty great for sales teams who are trying to share information and records with each other.  Each team member can immediately see the activity history, including calls, for all leads, opportunities and contacts.  If a team member is off sick or otherwise busy, her team mates can make sure nothing is missed.

“I’m sold! Now, how do I set up a call center in Salesforce? “

You need a CTI adapter.  A CTI is a Computer-Telephony Integration.  It the piece of the puzzle that allows Salesforce to interact with incoming and outgoing calls.  Not all CTIs have all the features mentioned above, and some CTI adapters have other features like power-dialing.

There are a few CTI adapters out there which can be found on the Salesforce AppExchange.  You’ll have to do some research to figure out what works for your phone system and offers the features you’re interested in.  This can be daunting if you aren’t familiar with telephony, but it doesn’t need to be.

To get started, check out this post on Basic Telephony Terms, and have a look at the phone systems you are using.  Then spend a bit of time on the Salesforce AppExchange looking at the CTI Adapters.  At InGenius, we’re very proud of all our positive reviews and we are always happy to answer questions about our products or your system.

Check back soon for more information on softphones vs. hardphones, business telephone systems, customizing Salesforce reports, and more!

Follow

Get every new post delivered to your Inbox.

Join 311 other followers