Wednesday, December 09, 2009

My musings represented in Wordle

It is interesting to look back and see the sorts of things I have been talking about represented in Wordle. Courtesy of

Friday, December 04, 2009

Mass Deleting Files and Activities From NetSuite

NetSuite has instituted storage charges for users with data in excess of the lesser or 1GB per user or 10GB - see my earlier post for details. Therefore, it behooves NetSuite customers to delete unnecessary data from their account. This can be very tricky for transactional data but can be quite simple for two types of data:

1. Files
2. Activities (Tasks, Events, Phone Calls)

There are mass updates available to automate mass deletions of files and activities from NetSuite in order to reduce storage charges.

In administrator role, go to Lists>Mass Update>Mass Updates and select Files. This will reveal a "Delete Files" mass update which allows search-based deletion of files on a scheduled basis.

For example, it may be your policy to delete all files that were created at least 12 months ago, were last viewed at least 12 months ago and were last modified at least 12 months ago. Once these criteria are set, the mass update can be scheduled to run every month ensuring that old data are purged on a regular basis.

Alternatively, these files can be moved to an archive folder which can then be downloaded for archiving purposes and then deleted.

With regard to activities, separate deletion mass updates also exist for Tasks, Events and Phone Calls. In administrator role, go to Lists>Mass Update>Mass Updates and select Activities. This will reveal "Delete Tasks", "Delete Events" and "Delete Phone Calls" mass updates. Again, these can be scheduled and the activities selected can be determined based not only on the date of the activity but also on data for any connected customer, contact, case or transaction.

Tuesday, November 24, 2009

SAAS is no longer the only CRM / ERP Cloud Computing Model

SAAS, software as a sevice, has been the dominant delivery model for on-demand applications for some time. It replaced the initial ASP (application service provider) model that emerged at the beginning of the decade. The vast majority of applications that we use online are delivered using this model - this blog, for example, and all of the Web 2.0 applications that we obsess over.

But a new model is emerging which takes the best of both worlds - cloud infrastructure.

So what is it? Who's using it? And why should you care?

The emergence of cloud infrastructure options is in some respects back to the future to the pre-2000 world of collocation and managed hosting. But in many ways, it is radically different. Cloud Infrastructure providers such as Amazon, and to a certain extent Zoho and to name some household names, provide access to virtualized servers (ie large server farms that function like lots of little servers) within a professionally managed hosting environments. You buy just the processing that you need. This democratizes the application hosting game.

The emergence of these virtual servers is a potential game-changer for the CRM and ERP markets. Until now, the main advantages proclaimed by SAAS market leaders were that they were always on and available anywhere with no servers or software to maintain. Building these facilities was expensive and complicated and presented a barrier to entry that even large entrants have stumbled across. Another issue with these large shared facility customers is load balancing over shared resources (ie if someone sharing your server uses a lot of processing power, your application may feel it).

Now, smaller entrants such as SugarCRM and OpenBravo ERP are offering preconfigured bundles that can be rapidly installed in Amazon's Cloud. This approach may present the best of both worlds for some customers. This is not to say that the products emerging are functionally fully competitive with NetSuite for example but in time this will start to happen. Here are the advantages and disadvantages that I see:

1. Still in the Cloud: The applications are fully web-based and are indistinguishable from their true SAAS comparators in this respect. Customers don't need any local infrastructure other than an Internet connection and a browser.

2. Less Expensive: The applications that are leading this charge often come from the OpenSource world (which will be the subject of an upcoming post) and are often dramatically less expensive to own and operate (or even free except for the Cloud platform costs). On the other hand, these applications are less mature in most cases.

3. No lock-in: It's your "virtual" server, it's your data. Migrating from one system to another is never easy but at least you can access you data directly.

4. Extensible: Many of these systems offer the ability to integrate with other cloud reporting tools securely within the server environment. For example, data for an ERP application can be stored in MySQL and be made accessible to a reporting application in the same cloud at near LAN speeds or another cloud via web services.

5. More competition: SAAS Market leaders such as have complex and expensive infrastructures to deliver their applications and have shown impressive uptime. Now, however, many small providers can enter the space without building the same level of expertise or infrastructure. It's not the same as the dedicated engineering teams that the large players have but that may not be necessary.

6. Beware the small software company: One thing you definitely get with NetSuite and SalesForce is SIZE and reliability. They aren't going away anytime soon. This is just as critical to the new companies' customers - after all, we are talking about systems that run your whole business, not the latest photo site.

So, my overall take. SAAS is becoming less a category of software than a delivery model for web-based software. The emergence of cheap cloud infrastructure will create new opportunities, new business models and ultimately more choice.

Thursday, November 19, 2009

Managing Regional Web Shipping Methods in NetSuite

Many NetSuite customers ship to a variety of different regions and countries that require different shipping policies. The tools in NetSuite to manage these are quite limited but can do extraordinary things. This is the first in a series of posts about managing shipping methods for NetSuite ecommerce stores. The focus today is regionalizion.

Here is the most common scenario: You want to offer one set of shipping methods in the mainland US. You need another set for Canada to reflect increased costs and manage customer expectations crossing the border. A third set for far flung places such as Alaska, Puerto Rico and Hawaii. And a fourth set for the rest of the world. A more complex version of this divides the US up into zones by state.

In release 2009.2, NetSuite introduced the ability to restrict a shipping method by country. So you can have one set for Canada and another for the US and a third for the rest of the world. To do this go to the shipping item (Lists>Accounting>Shipping Items in Admin or Full Access) and edit the Shipping and Handling Rules to either include or exclude the desired countries. This is OK as far as it goes, but you can still end up shipping ground to Hawaii.

To take this to the next level, you need to add some smarts to your checkout. To do this, you need to create an index of your shipping methods and an index of shipping zones by state, province or territory. A script is then used to detect which state the customer is shipping to and only show the correct methods. If the user has not selected an appropriate method, the script will not allow the order to submit and will display an error.

The script must also detect when there is no pre-calculate applicable method (eg shipping a piano to Australia) and present a default RFQ method advising the customer that the shipping needs to be quoted and their credit card will not be charged until they approve the quote.

If desired, you can have multiple zone matrixes driven by additional factors (eg - if an item on the order needs to go by freight, or a method only applies if you are paying by credit card)

Examples of sites in which I have done this include WoodlandDirect and NovaNaturalToys

Next up: Rush orders, upcharges, location-specific quantities and all sorts of other funky things you can do with or to a NetSuite checkout.

Tuesday, November 17, 2009

Managing Your NetSuite Account To Minimize Data Storage Overage Charges

NetSuite has started charging clients for excess data storage at a list rate of $1500/yr/GB after 10GB. We have seen the first renewals under this policy. This pricing has been in place for a long time but was not enforced by NetSuite as far as I am aware. As far as I know, this is NOT being enforced mid-license.

This can come as quite a shock for customers, particularly ecommerce customers, who have lots of transactional data even though NetSuite has specified the 10GB limit on all quotes for a number of years.

So the questions you should ask are:

1. Does this apply to me?
2. What can I do about it?

Does this apply to you?

It is simple to check your current usage within NetSuite by going to Setup>Company>Billing Information. You will see two lines showing your file cabinet size and your total data storage. However, to get the "true" number drill down into the billing information on the "Component Usage" subtab and sort by "Cumulative Quantity" in descending order. The top number should be Total Data Storage - if it's not, you are almost certainly over 10GB.

Unfortunately, there is no breakdown of what makes up this number. However, it is a reasonable assumption that it is predominantly transactional data.

What can you do about it?

There are a number of things you can do:

1. Ensure that your database is purged of all unused customizations - particularly column fields on transaction records. You have to be careful here to use best practices to avoid deleting valuable data.

2. Export and delete old non-transactional data (files, messages, activities, notes, inactive customers, leads etc.) - this can be done in theory without scripting put practically will require scripting. There are also some best practices that can be followed to minimize file storage use in the future.

3. Export and Delete Old Non-posting transactions (Opportunities, Estimates, Sales Orders). This requires scripting but should be relatively safe.

4. Export and Delete Old Posting Transactions - this is likely to be the lion's share of the data and will have to be very carefully performed in order to avoid violating the integrity of the system. As far as I know there is no commercially available tool for doing this, which I intend to rectify.

I am developing a working group of clients interested in this problem to share the cost of developing and testing these solutions. Let me know if you are interested. In the meantime, here's hoping that NetSuite has an archiving solution on the way.

Thursday, October 29, 2009

NetSuite Tip: How to do math in summarized saved searches

How do you calculate the difference between two columns in a summarized saved search. For example, if you had one column that showed the number of items on pending estimates and unapproved orders and another that showed the number of items on order, how could you determine whether you would run out? There are three methods:

1. Export to excel or have excel link to the csv version of the search as a datasource. You will usually need a macro however.

2. Create a suitelet or portlet to process the data and add the calculations.

3. Add scripting to the search itself. A text formula field can hold any value, including JavaScript. You can use this to embed a script that runs when the page loads and performs math on the results.

- Posted using BlogPress from my iPhone

Thursday, January 29, 2009

SAAS Applications Still Require Strong Clients

NetSuite's performance monitoring is extraordinary.

Built into every page within the application is an on-demand performance management widgit. By clicking on the NetSuite logo in the upper left corner of the application, a user can instantly diagnose the factors contributing to page load speed. A screen shot from a dashboard load is above.

In this case, 11% of the load time was the server, 5% was the network and a whopping 83% was the client. To be fair, when I captured this, I had 23 windows open, some of which had multiple tabs.

So full kudos to NetSuite for their transparency and fair warning to corporate SaaS clients - it's not all bandwidth and server. Your client apps need the muscle to generate these complex interfaces.

Google is releasing more generalized tools for monitoring SAAS performance . All SAAS providers need a commitment to optimize the client as well.