Saving Time with the Metadata API

We’ve done about 20 Salesforce implementations, and have 5 more going right now. We’ve developed a base template–a set of objects, fields, reports, dashboards, workflow, scontrols, visualforce, and apex that we start with for each client. We then customize that to their needs.
When I first started this work, it would take about a week to get a base install set up. All the objects had to be created in the web interface. Fields and values had to be done by hand. Code had to be copied by hand. It was a drag.
Then came the Appexchange, and we got to package up some things and install them with a few clicks. Then the Appexchange got better, allowing for more things to be packaged.
The last time I did a base install of our template, it took about 8 hours.
Much of this time was getting the page layouts to look right. If you’ve ever worked on a page layout, you know how complex they are. First you have to get all the fields in the right place by dragging and dropping them. But you then have to click into each field if you want to make it read only. You have to pick the buttons you want to show up on the page. You have to pick the related lists, and then each related list has a list of fields in a specific order, as well as sort order.
Page layouts were a significant piece of work, and I’d often find out in training with the client that one related list didn’t have the right fields, or wasn’t sorted the correct way.
The Metadata API and the Force.com IDE have changed how we deal with page layouts. We can now set them up in our template instance and copy and paste them into our customer org.
I have a new customer and I set them up with our base template yesterday. It took me 2 hours.
For each customer I deal with, the Metadata API will save me 6 hours of point and clicking in page layouts. I can’t tell you how happy that makes me–hand-tweaking page layouts isn’t the greatest value-add to the environmental cause.
You can also copy and paste Profiles, so we now have some template profiles set up, and the next install will go even faster.
If you’re a consultant, you need to use the Force.com IDE and the Metadata API. It’s a massive time-saver and will only get better as more things are added–roles, sharing rules, record types, buttons and links–who knows what’s next?

August 20th, 2008 at 2:39 pm
The Metadata API, combined with Eclipse, is truly a super time-saver. There is a quicker way to deploy your base template: DOT the org. As a salesforce.com partner, you can create an org that has your base template, and then just ask salesforce.com to create a DOT (an org template, complete with data) which they will store and use whenever you’d like.
Alternatively, use Trialforce to create your template, and then just link that to a free trial button on your website. You or the client can click on that and the trial org will be your template - just ask the Account Executive to use that org as the client’s org, and you’re done.
Two hours becomes two minutes!
August 21st, 2008 at 8:24 am
Yes, great points. We’re not a partner, but could become one.
The main problem we’ve got is that our template changes weekly. As we do new work for clients we’re continually pulling good stuff back into our template. I’ve heard the DOT process is a pretty manual one on the sf.com side so I’d be worried about making tons of work for them.
September 25th, 2008 at 10:10 am
Steve and David,
I concur that the Force.com IDE and Eclipse are a huge step forward from the developer side. However, for the average admin in any given org, the learning curve may be a bit above the water line for most. DreamFactory offers an admin toolkit that includes a change management application and a data migration tool. Both are easier to use for daily administration and have just been adopted by SFDC’s PS teams for their daily engagements. You may want to check it out. You can push objects, profiles, page layouts, workflows, validation rules, and Apex triggers just to name a few, with one click.
October 24th, 2008 at 11:00 am
[...] - bookmarked by 2 members originally found by evancarr on 2008-10-03 Saving Time with the Metadata API http://gokubi.com/archives/saving-time-with-the-metadata-api - bookmarked by 2 members originally [...]
October 28th, 2008 at 12:17 pm
Hi Steve,
Thanks for posting about this. I have 7 opportunity page layouts and about 30 layouts for the Contract Object. Now when I need to add a new section or field for a page layout, I modify one layout in the application and then use Eclipse to do the rest. I find the first layout in Eclipse and copy the code of the new section and then paste it into the rest of the layouts that need to be changed. It sure beats modifying 30 different page layouts through the application.
Thanks again.
Aiden