Welcome to the new site! Some areas are "Coming Soon!" as the content is being migrated.

Posts Tagged ‘Salesforce.com’

My Calendar Syncing Solution

Wednesday, December 2nd, 2009

Calendars and I are something that have never quite gotten along. I’ve tried using everything from iCal on my mac, the calendar on my iPhone, Google Calendar, Backpack Calendar, and to-do applications like Things or ToodleDo. With each system, I would eventually just resort to using a piece of paper or a notebook to track everything. I’m now starting two companies and I have a need to actually share/see both my availability and that of the people I’m working with. So unless moleskine notebooks someday become internet-enabled, I needed to teach myself to use something else.

I managed to sync my Google Calendar, iPhone, iCal on Mac, Salesforce calendar and Basecamp Milestones. Each one of the technologies supports integration without third-party applications except Salesforce, which I will show you below.
sync

What You Will Be Able To Do

As illustrated above, you will have bidirectional integration with each system except Basecamp, which will only be imported into Google Calendar as a read-only calendar (fortunately that is all I really need for Basecamp).

You will be able to create/edit/delete events most efficiently between iCal, GCal, and iPhone, as if they were all the exact same calendar. This includes being able to invite people to those events.

How To Do It

We’re now able to do this thanks to a wonderful technology called CalDav which is supported by most of these platforms.

Setup Google Calendar

I use Google Apps on my own domain but this should work with the regular Google Calendar as well. Simply setup Google Calendar how you would like to use it.

Add Basecamp to Google Calendar

Login to your Basecamp and scroll down to the bottom of the page to find your global feeds. Right-click on the Global iCal Feed and copy the link address. Go into Google Calendar and in the left sidebar, click the Add+ link and select Add by Url. Paste in your URL and you can select whether or not you’d like to make it publicly accessible. I would only enable this if you want to publish your GCal on a website somewhere.

add

Add Salesforce to Google Calendar

For this integration, I had to use Appirio Sync for Google Calendar. It’s free on the AppExchange. Install the app inside of Salesforce and it will step you through the setup. You can select from bi-directional syncing or opt only for Salesforce to Google or Google to Salesforce functionality.

Syncing Google Calendar and the iPhone calendar (link)

You must have at least the 3.0 version of the iPhone firmware for this to work.

These instructions were provided by Google:

  1. Open the Settings application on your device’s home screen.
  2. Open Mail, Contacts, Calendars.
  3. Select Add Account…
  4. Select Other.
  5. Select Add CalDAV Account.
  6. Enter your account information:
    • In the Server field, enter [ google.com ]
    • In the Username field, enter your full Google Account email address.
    • In the Password field, enter your Google Account password.
    • In the Description field, enter the name you’d like to appear on the account.
  7. Select Next at the top of your screen.

After you’ve completed setup, open the Calendar application and syncing will automatically begin.

By default only your primary calendar will be synced to your device. You can sync additional calendars by visiting one of the following pages from any browser (via desktop or mobile device):

Select the calendars you’d like to sync, and click Save. The selected calendars will display on your device at the time of the next sync.

Syncing Google Calendar and Ical (link)

  1. Open Apple iCal, go to Preferences and then the Accounts tab.
  2. Click on the + button to add an account.
  3. Under Account Information, enter your Google Account username and password.
  4. Under Server Options, add the following URL:
    https://www.google.com/calendar/dav/YOUREMAIL@DOMAIN.COM/userReplace ‘youremail@domain.com’ with the email address that you use to log in to Calendar. Make sure to include the ‘@domain.com’ portion (which is @gmail.com for Gmail users) in this section.
  5. Click Add.
  6. Under the Delegation tab, select the calendars you’d like to add to iCal by checking the boxes next to them. You may need to hit refresh to get the latest list of calendars.
  7. Add your email address to your Address Book card by selecting Add Email. You’ll be prompted to add your email address only if your address is not already in your Address Book.

You won’t be able to invite or email guests to Google Calendar events within iCal if your address is not in your Address Book.

Your Google Calendar will now appear in iCal’s list of calendars, and changes you make to your Google Calendar in iCal will be reflected when you sign in to Google Calendar.

Syncing <Insert Name Here> with Google Calendar

If you use a web application that has dates and events as an iCal feed that you can subscribe to, you can add any of them to Google Calendar.

A few things to note

It’s not perfect but it works for me. Now, I can use whichever calendar is on-hand at the time and it will almost always be reflected elsewhere because my Google Calendar is acting as the master calendar.

Someone recommended I check out Pocket Informant on the iPhone, which syncs with Google Calendar and looks like it has a better method for visualizing events and availability when you have a lot of calendars. I haven’t tried it yet as it costs $12 on the App Store but its worth taking a look at it if you use a lot of calendars.

Hope this helps!

Introducing my Unofficial Basecamp + Salesforce.com Toolkit

Wednesday, November 18th, 2009

logo

For the Force.com developer hackathon, I developed an integration toolkit between 37Signals‘ Basecamp application for project management and Salesforce.com. This little bit of work earned me the top prize in the Dreamforce 2009 Hackathon so a big thanks to Salesforce.com for putting on the event. It has easily become my favorite part of the Dreamforce conference.

Salesforce.com, in its simplest form, allows for the tracking of business leads, contacts, accounts, opportunities and its development platform extends its functionality to include pretty much whatever a developer can come up with. For many organizations, these salesforce opportunities represent products that are being purchased by another company. What if, however, you are a professional services group? Your services are products in a sense, however the native salesforce.com functionality of products is fairly limited for use for professional services.

Enter Basecamp
Basecamp allows you to manage companies, projects and the various messages, to-do lists, milestones, files and time tracking for each project.

Your Basecamp is in my Salesforce
This Basecamp+Salesforce.com toolkit allows you to tie Salesforce opportunities to Basecamp projects right out of the box. The toolkit includes methods for all of the Basecamp API methods so developers can build their own applications using whichever Salesforce.com objects and business logic they desire using visualforce and apex code.

Due to the time constraints on the Hackathon competition, the toolkit requires a little bit of work on my part before I deem it ready for releasing to the Force.com Code Share.

Features

  • Tie your Salesforce user account to your Basecamp user account
  • Associate opportunities to existing Basecamp projects
  • Create new Basecamp projects from within Salesforce
  • Create, read, edit and delete project messages, to-do lists and milestones
  • Manage completion of to-do lists

Considerations
Both Basecamp and Salesforce have methods for alerting users regarding upcoming tasks. The initial version of this integration relies on Basecamp’s notifications, which can be selected from within Salesforce.

Roadmap
Due to the short timeframe provided during the Dreamforce Hackathon there are a few Basecamp functional areas that were not written into the toolkit. I plan to add these items soon but they may not be in the first version released to the code share.

  • Time tracking
  • Writeboards
  • Files

basecamp_sf

basecamp_sf2

basecamp_sf3

Disclaimer: I am not affiliated with either Salesforce.com, Dreamforce, 37Signals or Basecamp.

What am I up to now?

Wednesday, July 8th, 2009

I have a lot of things going on right now so I thought it might be a good time to get it all out in writing, for my own sake as well as to share it with all of you.

Now that I’ve graduated, here are the different areas of my world:

Twelve Horses

I’m still working on Salesforce.com projects at Twelve Horses and taking on a few projects with a project management role.

439666

Social Network Project

I can’t name names right now but I have been hired by a social network startup in San Francisco as a contractor to do two things. The first is to take their existing website and social network framework, originally built on Ruby on Rails, and move it to WordPress MU with BuddyPress. The second is to implement a full redesign that they have already had commissioned by another designer.

buddypress-logo

Their current site is far from being user friendly so I’m excited to be working on the project as it mixes information architecture, interaction design, and my platform of choice, WordPress. Their goal is to be a content provider with many of the elements you would find on a social network. In fact, because of this, instead of competing with other social networks like Facebook, users will actually be able to sign up for a profile using their existing Facebook profile using the Facebook Connect technology.

connect_white_large_long

Random Projects

I just got done acting as a technical editor for a book on developing with the Force.com platform. It was pretty cool to offer insights and feedback on the author’s manuscript as well as providing validation on the concepts and code examples that were covered.

Reno Collective

My biggest endeavor for the last year has been Reno Collective. If you don’t already know what it is, check the website. There have been a few ups and downs and we have certainly learned alot. Ed and I went and visited quite a few coworking spaces when were were in California during the San Francisco WordCamp. Jeremy over at NextSpace in Santa Cruz hooked us up with the inside perspective.

rc

The LLC is in place and everything is on track to open. Our efforts are now being poured into finding a building that fits all of our magic numbers to make the space work and thrive as the community grows. We have a benefit show down at The Amendment 21, featuring a hip-hop and burlesque show that we’ve called Beauties & Beats.

rc

Events to bring people together

In the process of promoting Reno Collective, we started to see a need for social (and yes, often geeky) events in Reno. From this need spawned Ignite Reno, Reno-Tahoe WordCamp and what will soon be a Reno WordPress User Group. WordCamp turned out great and we will definitely be putting on another one next year. The first Ignite Reno was also great success and the second Ignite Reno is quickly approaching this month on July 16th.

ignite

Future events that we have in the works are FreelanceCamp Reno and LaidOff Camp Reno. Dates, locations and more details are still being worked out but these events will focus on bringing freelancers together to learn from one another and helping locals who have been laid off from their jobs to get back into the job market by working smarter instead of harder, essentially hacking the job process.

fcamplogo

laidoff

My ‘Infinite’ Amount of Spare Time

Yes, there is and will always be, spare time. I like to work hard and play hard. I just completed the Tour De Nez as my first century bike ride. I’m prepping for Burning Man at the end of the summer with the camp that Ed is putting together, The Black Rock Center for Unlearning. I am still not 100% sure I will be going out to the playa this year as I also have my eye on heading over the England and Switzerland for the first time but I am pitching in where I can to help prepare. Now that it is summer time, I also look forward to many visits up to Lake Tahoe (geocaching, perhaps?), rafting down the Truckee River and getting in hundreds (thousands?) of miles on the road bike.

brcu

Inspired by the Force, the Force.com platform that is

Tuesday, June 24th, 2008

I’ve been working with Salesforce.com for just over a year and it is no where near the same system it was when I started working at Twelve Horses. In the past year, I have seen the CRM evolve to include a full developer platform, Force.com, with Apex code allowing developers to create complex business logic for data manipulation, maintaining data quality and the ability to communicate with external services [see Google Data API/Toolkit below]. Force.com then grew to include Visualforce, which grants users the ability to create custom interfaces that use Salesforce.com metadata. Combining Salesforce objects, Apex code and Visualforce, developers are now able to develop in the model-view-controller (MVC) architectural pattern. Simply, MVC allows for the developer to separate their code into layers for ease of maintenance and further development.

Google Data API Toolkit
I just got back from Tour de Force, which featured a few exciting announcements, especially the Google Data API Toolkit, which allows developers to create, manipulate and pull data from Google applications like YouTube, Calendar, Spreadsheets, Docs and more.

I’ve been developing a project management application through Twelve Horses. Dreamforce 2008 is fast approaching and I would love to be able to package the application and make it available via the AppExchange before then.

Optimizing business processes before technology

Tuesday, June 10th, 2008

Kingsley Joseph asked an interesting question on Twitter today that had me thinking about optimizing business processes:

“what does CRM mean to you? most definitions I find on the web are next to useless”
Kingsley2

He had quite a few responses, mine was as follows:

“@kingsley I would define CRM as any system used to manage customer touchpoints and value derived from those interactions-products/email/etc”
colinloretz

My response to Kingsley was very short. It had to be in order to stay within the 140 character limit of Twitter. As he pointed out in his reply, Twitter’s restraint can be useful for receiving a clear definition of a complex system like CRM, which if you haven’t decoded it yet, is customer relationship management usually applied to customer relationship management software. If you Google “CRM” or its expanded form, you’ll find all sorts of definitions, each one more convoluted than the last. It doesn’t need to be complex.

Customers provide a business with value. Using a grocery store as an example, optimizing touchpoints, anywhere a business and customer interact, can increase variables such as how many times a customer visits the store or how much they spend during each trip, resulting in a higher customer lifetime value.

Some other responses to Kingsley’s questions included:

“CRM is philosophy & strategy that puts the customer at the center, maximizing long-term value for both customer and business”
Gokubi

“CRM requires concrete, measurable goals and clear reporting to validate increasing ‘value.’”
dschach

“CRM is a philosophy & a business strategy, supptd.by a system & technology, designed to improve human interactions in a biz. environment”
pgreenbe

And at a very high level, which probably falls in line with many company mission statements:

“CRM will help you save the world…if that’s what you want to do.”
Gokubi

I spend a lot of time developing solutions using Salesforce.com, customer relationship software that is offered using a monthly software-as-a-service model. Many people would probably argue that being a programmer, knowledgeable in Javascript, HTML and Salesforce’s own Apex code, a derivative of Java, is all you need to develop solutions for the platform. An education in computer science will prepare most programmers for the type of logic that is needed in day-to-day business scenarios. Many businesses could actually benefit from a programmatic approach to business. In fact, applying principles from open source and agile development philosophies to business can have amazing results. That discussion is for another article.

Software can help a business but technology should not be thrown at a problem to make it go away. In most of the businesses I’ve worked with, there have always been real world processes to optimize before implementing the technology.

Real world experience can be one of the best teachers, but adding textbook learning from areas like Six Sigma or project management to a developer’s skill set will allow a small team, or even an individual, to optimize a business that can be further supported by technology like Salesforce.com or Microsoft Sharepoint.

what i do -

Lively Labs

Web App Shop

visit

Reno Collective

Coworking Space

visit

things you should go to -

SEP 18-19

WordCamp PDX

in Portland

more

OCT 23

WordCamp Las Vegas

in Las Vegas

more

NOV 15-17

FOWD

in New York City

more

DEC 6-9

Dreamforce

in San Fran

more