of 27
7/31/2019 GM_Seminar_06_2012
1/27
Page 1 of 27
Continuing GoldMine Education : June 2012
Prepared by Justin Hill
For
www.marksgroup.net / [email protected]
The Search Center
Automated Processes
SQL Queries
Dashboards
7/31/2019 GM_Seminar_06_2012
2/27
Page 2 of 27
The Mild Mannered GoldMine Search Centerjust add a phone booth
We all know that Searching for Contacts is the most important thing we will ever
do in our GoldMine; everything we choose from the top-level menu in some way affectsthe Current Contact Record.
Consequently, using the Search Center has become second nature. We click overto look for someone, then back to the Contact Record and hardly ever think about it.
So, it was easy for Frontrange to sneak in several amazing enhancements under the
radar.So, we present
The Top 5 Things the GoldMine Search Center can Do but is Never Asked To
#5 - List more than 10,000 records
Those of you who have tried and given up on using the Search Center for looking
at more than the default 10,000 records, rejoice! The 10,000 record limit can now be
increased on a per-system level.
1. Log in as the MASTER user or equivalent2. Go to Tools | Configure | System Settings from the top level menu3. Click the Display Tab
Note: Increasing these values may impact the performance of your Search Center.
Increase both
values to the
desired amount.
7/31/2019 GM_Seminar_06_2012
3/27
Page 3 of 27
#4 - Accessing your Filters and Groups
Did you know that you can Preview any of your Filters or Groups within theSearch Center? Simply click on the Filters/Groups button to open the Filters and
Groups tree view on the left hand side;
When you double-click to Preview a Filter or Group, you may get this message;
Clicking Yes will allow you to provide a Filter Optimization (using a Beginningand Ending limit). This is entirely optional, and if youre not sure how to use a Filter
Optimization, simply click No.
Once the Filter/Group is Previewed, we can see so in the tab of the Search Center;
To release your Previewed Filter in the Search Center, simply close the Tab.
Click this butto
to reveal/hide th
Filters andGroups Tree.
Navigate to the
Filter/Group
youd like to
Preview and
double click it.
7/31/2019 GM_Seminar_06_2012
4/27
Page 4 of 27
#3 - Using the Multi-Level Search
You can search on more than one field by clicking the plus sign in the upper-
right hand corner of the Search Center. This will add a level to your Search Criteria.
You can see here that each level allows you to search on a field. In this case,Im looking for Customers in New York State.
Incidentally, you can now save your multi-level Search as a Filter or Group by
clicking your Save button.
Click the + to
add a level, the -
to remove a level.
All of your favorite
operators are
available from thedrop downs (begins
with e ual to etc .Every field on the
Contact Record is
available through
this drop-down.Every level has a
connector, which is
defaulted to AND. OR is
also available.
Selecting Filter or Group will allow you to create
and name a new Filter/Group against the same
criteria as used in the Search Center.
Exporting to Excel, Word or the Clipboard here
is exactly the same as the right-click Output To
functionality found in the other areas of
GoldMine.
7/31/2019 GM_Seminar_06_2012
5/27
Page 5 of 27
#2 - Adding columns
What good does all this fancy list-generating do you if you cant see the desiredcolumns? Maybe you need a list with the Customer Type, perhaps you need one with
Acct Rep listed. In either case, it is now easy to add columns to your Search Center.
Adding columns is a per-user setting.
Click the Columns
button to display the
Select Browser
Columns window.
Go to the Column
Selection tab to add
columns.
Add columns from
the left (available)
to the right
(selected) by usingthe arrow keys in
the middle.
You can re-order the
columns you select
by using the Upand Down
buttons.
7/31/2019 GM_Seminar_06_2012
6/27
Page 6 of 27
#1 - Right-click Output To
When you think about it all, the ability to customize columns, search criteria, save
search criteria for later use, all of these great amazing things allow us to do one thing;
create a list. Create lists easily, and now, easily get them into Excel.
Anyone who has been using GoldMine for awhile now knows about the right-
click Output To functionality. Its available in virtually every list control withinGoldMine. Invoking this item dumps all the rows out of whatever youre looking at in
GoldMine, into Excel.
So, by using the five previous steps, we should be able to easily;
- Use the Search Center to create a custom filter- Add any columns youd like- List more than 10,000 records at a time- Export the final list to Excel
7/31/2019 GM_Seminar_06_2012
7/27
Page 7 of 27
Automated ProcessesDrip marketing through the firehose
GoldMine Automated Processes
Let us consider what a GoldMine Automated Process is. Simply, it is a list ofinstructions that will be carried out against a Contact Record. This would include things
like Schedule a Call, or send an E-Mail.In the nutshell, an AP is attached to a Contact Record. Once attached, it must be
scanned, during which time the AP runs through its instructions.
To illustrate how this works, well imagine were creating a Prospect WelcomeAP. This AP will send a series of marketing e-mail templates to the attached contact,
waiting a few days to pass between the sending of each.
The easiest way to see how this works is to create one! Select Tools | Automated
Processes | Manage Processes from the top level menu.
This is the Automated Processes (AP) center. To get going and create a new AP,right click and select New.
7/31/2019 GM_Seminar_06_2012
8/27
Page 8 of 27
Like most things in GoldMine, this uses a Wizard interface.
Give your Automated Process a friendly
name.The Process Code is optional.
Make sure to check Allow only
one attachment of this
process, otherwise you
could have Prospects with
multiple Prospect Welcome
APs
We also want to make sure th
Users can attach this AP.
7/31/2019 GM_Seminar_06_2012
9/27
Page 9 of 27
The Events window is where we will spend most of our time. These are the
instructions the AP will carry out for every contact it is attached to. To start creating an
Event, click New.
Every AP Event is comprised of a Description, a Trigger and an Action. In thiscase we want our AP to send a series of E-mails, so the Trigger for our first event isImmediate. This means the Action is performed right away, when the AP is scanned.
7/31/2019 GM_Seminar_06_2012
10/27
Page 10 of 27
Note weve selected E-mail message as our Action. Clicking in the Options
button will reveal the detail on which template to use:
Hit OK to proceed. You can see now we have one Event within our AP.
7/31/2019 GM_Seminar_06_2012
11/27
Page 11 of 27
Lets add another e-mail to be sent, two days after the first. Click New again.
Dont forget to check your options for the E-mail message. In this case youllnotice Ive selected a different e-mail template:
Our Trigger is now set to
Elapsed Days, as we
just want the Process to
wait a few days before
sending our second
Prospect Email.
We want to send yet
another e-mail message
so we have this selected
again.
7/31/2019 GM_Seminar_06_2012
12/27
Page 12 of 27
So now we start to get a sense of how the AP is going to work. First, it will
immediately send our first email. Then it waits two days before sending the second.
Lets add yet another e-mail to our list of Events.
Our trigger is still set to Elapsed
Days. This means that the Process will
wait two days after the lastEvent
before this Event is triggered.
7/31/2019 GM_Seminar_06_2012
13/27
Page 13 of 27
This is how our third Event looks:
And here is our resulting list of Events:
7/31/2019 GM_Seminar_06_2012
14/27
Page 14 of 27
At this point, we need to mention the two major Types of Events we can have
within our Process. To this point, weve been adding SequentialEvents. This means the
Events happen in asequence. When a Process is scanned, it goes to the nextSequential Event in the list and, depending on the Trigger, executes it.
The other Type of Event isPreemptive. All Preemptive Events are evaluatedevery time a Process is scanned. These events are also scanned before the Sequential. So,
a good use of a Preemptive Event is to check and see if our Prospect has become a
Customer, and if so, remove the Prospect AP.
Click New to create yet another Event:
As with virtually every kind of Trigger, we must specify the Options by clicking on theOptions Button, shown here:
Make sure you select Preemptiv
Our Trigger is going to be a
dBase condition (simply, we are
looking for a certain value in a
field).
This Event will Remove the
current Automated Process if the
dBase Condition is satisfied.
Use this expression builder just as
you would if you were making a
Filter. In this case, were
checking to see if our Prospect is
now showing Customer in the
Customer Type field.
7/31/2019 GM_Seminar_06_2012
15/27
Page 15 of 27
So now our Process looks like this:
Go ahead and Finish out the Wizard. Your Process should look like this now:
Every time this Process is
scanned, it checks to make sure if
the record is a Customer yet. If
not, it goes to the next
Sequential Event in the list.
7/31/2019 GM_Seminar_06_2012
16/27
Page 16 of 27
Executing your Automated Process
Once you are happy with your Automated Process, you need to Attach and Scanit! To do this, select Tools | Automated Processes | Execute Processes.
This is where it all happens, the Execution window. This is where you Attach
your Process and also scan it to move it along that list of Events.
Make sure you select the
Process youd like to attac
these records. If your Proc
are already attached, you c
leave this alone.
You can choose to add the
Process to a certain subset of
records, using a GoldMine
filter.
7/31/2019 GM_Seminar_06_2012
17/27
Page 17 of 27
SQL QueriesSeriously getting the ducks in a row
Fun Facts about SQL
- Designed by IBM in 1974- Standardized in 1986 by ANSI- Takes a fraction of the time to run compared to xBase and Filter expressions- Enjoys long walks on the beachThe main point here is that SQL has been in use since the old days, and
consequently, there is no more powerful way to ask questions of a SQL database. Thesyntax is not exactly user-friendly but is well worth the effort to learn. Plus, existing
queries can be re-used by tweaking field names and values rather easily.
Underlying Tables
For a full description of your GoldMine tables, please consult the appendices ofyour User Manual. I will outline the three we will be using below:
CONTACT1 Primary contact data
CONTACT2 User-defined fields
CONTHIST Contact history data
The mighty SELECT Statement
At the core of every SQL query for GoldMine is a SELECT statement. That is to
say, wed like to SELECT only certain rows from the underlying tables. Not only that, we
will need to tell it FROM which table we want to SELECT. We will also need to provide
a list of field names to SELECT FROM the underlying table.
So,
SELECT CONTACT FROM CONTACT1
Will return every contact name in our database.
SELECT CONTACT, COMPANY FROM CONTACT1
Will return both the contact and company names in our database.
7/31/2019 GM_Seminar_06_2012
18/27
Page 18 of 27
The WHERE Clause
Well, this is all well and good, but doesnt do us much in the way of Filtering
customers. Thus, the WHERE clause was born.
So, now we can tell it to only SELECT only those rows WHERE something is
true.
Example:
SELECT CONTACT, COMPANY FROM CONTACT1 WHERE STATE = CA
Will only return those customers in the state of California, much like our Filter
did.
Now lets get fancy:
SELECT CONTACT, COMPANY FROM CONTACT1 WHERE STATE = CAAND KEY1 = Prospect
Will only return those customers that are both in California andProspects. (KEY1
is the underlying field name of our CustType field again an excellent time to open yourappendices and see what columns are available)
A brief word about Boolean Logic
When you start using words like AND and OR, youre usingBoolean Logic.
Which only means that the statement you are working with is going to be TRUE or FALSE. Payattention to how much of a difference ONE AND or OR can make:
SELECT CONTACT, COMPANY FROM CONTACT1 WHERE STATE = CA
OR KEY1 = Prospect
Will return all records that are EITHER in California OR Prospects. This will be agreater number than the query above, because the query only cares that EITHER of the
conditions are met.
7/31/2019 GM_Seminar_06_2012
19/27
Page 19 of 27
Using both ANDs and ORs
In typical usage, both ANDs and ORs are used within the same query, insulated
from each other by parentheses. By inserting parentheses, we can exertflow controlover
our logic. They behave exactly the same way they did in high school trigonometry.
For instance:
SELECT CONTACT, COMPANY FROM CONTACT1 WHERE
(STATE = PA OR STATE = NY) AND KEY1 = Prospect
Will return Prospects from both Pennsylvania or New York.
SELECT CONTACT, COMPANY FROM CONTACT1 WHERE
(KEY1 = Prospect OR KEY1 = Customer) AND STATE = NY
Will return both Prospects and Customers from New York only.
Whats happening here is that the server is rendering each enclosed portion intoan ultimate TRUE or FALSE statement. Only then does it run that value against the next
part of the query.
Here is a gotcha:
SELECT CONTACT, COMPANY FROM CONTACT1 WHERE
KEY1 = Prospect AND KEY1 = Customer
This query returns no rows because it is impossible for a contact to be BOTH aCustomer AND a Prospect!
7/31/2019 GM_Seminar_06_2012
20/27
Page 20 of 27
ORDERing rows returned by your Query
You can sort the output of any query by using the ORDER BY clause, added to
the end of a query.
For example:
SELECT CONTACT, COMPANY FROM CONTACT1 WHERE STATE = PA
AND (KEY1 = Prospect OR KEY1 = Customer) ORDER BY COMPANY ASC
Will return the expected results, only sorted by Company is ascending mode.
You could have alternatively used:
ORDER BY COMPANY DESC
To sort in descending order.
Multiple levels of sort can be used, thusly:
SELECT CONTACT, COMPANY, STATE FROM CONTACT1 WHERE
STATE = PA AND (KEY1 = Prospect OR KEY1 = Customer)
ORDER BY COMPANY, CONTACT ASC
Returns the expected results, sorted by Company and then Contact, ascending
order.
Using more than one table in a query
It is often the case that a single query runs against more than one table. In that
case, the tables must be JOINED. This is in fact such a simple little word for such afascinating (and frustrating) concept. The best part is that you can benefit from the
samples I am going to provide here. The scope of this manual is not as such that could
encompass all the many forms of JOINS and why they are used. Being able to JOIN
tables requires that you know their PRIMARY KEYS and now would be an excellenttime to open up that ol appendix and see whats what.
7/31/2019 GM_Seminar_06_2012
21/27
Page 21 of 27
JOINing CONTACT2 to get Userdefined fields
Youve created all those nice user-defined fields, so lets start using them!
For the purposes of these examples, we will consider the user-defined fields
named UPRODUCT (Product Interest) and USIZE (Company Employee Size).
Let us further say that UPRODUCT can hold one of two values, Widget orGadget. And let us suppose that USIZE is a raw number of employees, from 1 to 100.
Here is how our JOIN will look within the query:
SELECT CONTACT, COMPANY, UPRODUCT, USIZE
FROM CONTACT1
INNER JOIN CONTACT2 ON
CONTACT1.ACCOUNTNO = CONTACT2.ACCOUNTNO
WHERE CONTACT = Justin Hill
Notice the join is provided BEFORE the WHERE clause. Please also note theusage of TABLENAME.COLUMN, which is also common to see within queries that deal
with more than one table.
Ok, here is a query that will return all records that have Widget in UPRODUCT
and more than 50 employees.
SELECT CONTACT, COMPANY, UPRODUCT, USIZE
FROM CONTACT1
INNER JOIN CONTACT2 ON
CONTACT1.ACCOUNTNO = CONTACT2.ACCOUNTNOWHERE
UPRODUCT = Widget AND USIZE > 50
Of course you can insert parentheses and ORDER BY as above. The important
part is to get your JOIN working for you.
Lets get fancy and tap both tables for a condition:
SELECT CONTACT, COMPANY, UPRODUCT, USIZE
FROM CONTACT1INNER JOIN CONTACT2 ON
CONTACT1.ACCOUNTNO = CONTACT2.ACCOUNTNO
WHERE
KEY1 = Prospect AND UPRODUCT Gadget AND USIZE > 75
This returns all records that are Prospects and do NOT have Gadget listed as a
product interest and have more than 75 employees.
7/31/2019 GM_Seminar_06_2012
22/27
Page 22 of 27
Using subqueries and CONTHIST
The most common use of CONTHIST (Contact History) in SQL Queries is to
either find out if they have no history, or no history within a certain range of days. This is
done by sub-querying. Dont be frightened! This is actually easier than joining!
A common query to find out records that have no history:
SELECT CONTACT, COMPANY FROM CONTACT1 WHERE
ACCOUNTNO NOT IN (SELECT ACCOUNTNO FROM CONTHIST)
ACCOUNTNO as you may have guessed, is our PRIMARY KEY for GoldMine.The query is asking the server to return all records that have no corresponding rows in the
history (CONTHIST) table.
`This query returns those records that have no history within the last 90 days.
SELECT CONTACT, COMPANY FROM CONTACT1 WHERE
ACCOUNTNO NOT IN (SELECT ACCOUNTNO FROM CONTHIST WHERE
ONDATE > (SELECT GETDATE() - 90)
The important part of this query is of course the (SELECT GETDATE())function, which always returns the current date. We thensubtract90 days from that date
using the subtraction operator; (SELECT GETDATE() 90).
Of course you can use both joins and sub-queries together. Good luck!
7/31/2019 GM_Seminar_06_2012
23/27
Page 23 of 27
Creating a Simple GoldMine DashboardDoing it for yourself
A Very Simple Dashboard
We in the industry are all very excited about the Dashboard capabilities inGoldMine 9. It is something that is not only very useful, but incredibly flexible.
Therefore, we will only be covering a basic Dashboard in this manual, both a Data Gridand Chart view. Once you get the hang of it, there is much more to explore.
The Parts of a Dashboard
When we think of a GoldMine dashboard, we must understand the constituent
parts:
- Dashboard : The highest level object, think of it as a blank page to put stuffon. A Dashboard is nothing but a collection of Controls.
- Control : Controls are objects which are dragged onto the Dashboard, anddisplay data. An example of a Control would be a Chart or a List of records.
- Data Source : What underlies each Control, and provides data to the Control.
Designing Your Dashboard
To access your Dashboards in GoldMine, select Go To | Dashboards.
Youll notice in the top left corner you can navigate through the canned
dashboards. These are actually quite useful and can give you a good idea of what is
possible.To get into Design mode, click the New Dashboardbutton at the bottom of the
Dashboards list.
7/31/2019 GM_Seminar_06_2012
24/27
Page 24 of 27
Adding a simple Grid
When working in the Dashboard designer, you drag Controls from the Palettepane into your work area. Go ahead a drag a Table View into your workspace.
Now, each Control (like the Table View we just dragged into our Dashboard) hasa set of Properties, which are accessed from the Properties pane on the right.
You can change
most of the
cosmetic aspects
of how the
Control isdisplayed.
Use the Data
Binding browse
button to bind
data to this
Control.
7/31/2019 GM_Seminar_06_2012
25/27
Page 25 of 27
However, before the Table View will show us any information, we must Bind it to a Data
Source. Click on the browse button next to Data Binding. This is where everything
happens; all the heavy lifting that a Dashboard does.
At this point you can actually hit Ok, then click the View button to see your
Dashboard in action.
So, true to its name, the Table View gives you, well, a Table View.
Select a Data
Category. In this
case we simply
want a list of
records.
You must add item
to the Bound Field
list to see them in
the Table View.
Column Properties
re available for
ach field. Most
seful is the
Visible checkbox,
hich can hideystem columns not
elevant to the end
ser.
7/31/2019 GM_Seminar_06_2012
26/27
Page 26 of 27
Adding a simple Chart
Much in the same way we added our Table View, go ahead and drag a Chartcontrol onto your Dashboard. Just like you did for the Table View, click the Data Binding
browse button. Then go to the Details tab.
The data source mustbe slightly different
from the Table View
source as we want
summarized values (in
this case a count).
As a Chart is a
Summary, you
must select what
to summarize the
data by. In this
case we are using
SOURCE. We
also need to
specify the
Summarized
Values as the
tems Count.
Multiple series
are an advanced
function,
illustrating the
fact Dashboards
are quite flexible.
7/31/2019 GM_Seminar_06_2012
27/27
So this is the finished product. Looks a little rough around the edges, but
hopefully you get the idea.