A fellow colleague of mine figured it out, but keep in mind we wrote our tab app based on another forum entry to control the tabs viewable location (order) so our params may be a bit different than yours.
The link to explain how to order your tabs is found here
Based on the info above - I kept the same information to associate between the two issues. All this takes place in the init function of your tab application:
Code:
var label = "Simple Tab App";
var image = "zimbraIcon";
var tooltip = "A simple app in a new tab";
var index = 2;
var params = {
text:label,
image:image,
tooltip:tooltip,
index:index
};
AjxDispatcher.require("ZimletApp");
var appName = [this.name, Dwt.getNextId()].join("_");
var controller = appCtxt.getAppController();
// up until now we are just setting the variables that will be called in the deeplink code
// I am skipping the xtras that can be found in the above link
if ((AjxStringUtil.parseQueryString() !== null) && (AjxStringUtil.parseQueryString() !== undefined))
{
var query_string = AjxStringUtil.parseQueryString();
if (query_string.app.toLowerCase() == 'deeplink_name')
{
controller.activateApp(appName, false, null, null, params);
}
}
I believe thats right, and where "deeplink_name" is shown, you can technically put any name there you choose that you want to add to the URL.
So for example if I left it as it is, the URL call would be...
Code:
www.myzimbra.com?app=deeplink_name
...and it should load your tab app instead of others.
Ok there you go! Let me know how this works for you. Real busy here so be patient on reply.
Thanks!

cmac