Take the Headache out of Data Import With Apsona

January 31st, 2017

Picture this: your annual auction has been a huge success. Congratulations! You have a spreadsheet chock full of donors with all their contact information, along with the items they won and additional donations they made. Some of these donors are new to you; some have been loyal fans of your organization for years. Now it’s time to get all that mission-critical data into Salesforce, so you can be sure to thank everyone and keep in touch with them for next year’s auction and other events.

The idea of data import can be daunting. Especially when you know you have duplicate rows of Contacts in your spreadsheet because of generous donors who won more than one item and donated during the Raise the Paddle session. And, some of your donors are already in your database, while some are new to you.

How can you be sure you import only one record for each unique Contact in your spreadsheet, and avoid importing Contact records for people who are already in Salesforce? And how can you match the newly imported or existing Contact records in Salesforce with their donations in your spreadsheet?

Enter Apsona’s Data Import tool. No more manual sorting and filtering — Apsona does all the heavy lifting for you, with some handy features that you’ll want to take advantage of right away. We’ll highlight three of them here:

  • Seamless handling of duplicate records. During the import process, Apsona detects duplicate rows in your spreadsheet, based on matching criteria you provide. Not only that, it checks your spreadsheet against existing records in the database to avoid creating new duplicates.
  • The Echo File: associates new record IDs with each relevant row in the spreadsheet. This means if you have three rows in your spreadsheet with David Smith as the Contact, Apsona will import just one David Smith Contact record — and then return an “echo file” with the new Contact ID filled in for each of the three David Smith rows. This makes import of related data, such as David Smith’s donations, a breeze.
  • Add columns on the fly during import. Have you ever started an import, and then realized part way through the process that you were missing a crucial field? And had to back out and start all over again? With Apsona, you can add missing columns on the fly without having to leave the import screen.

Let’s see how all of this works!

Seamless handling of duplicate records

We’ll begin by importing our donors as Contact records. As we recall, we have multiple rows in our spreadsheet with the same donor.

On the Apsona tab, click on Contacts. From the Tools menu on the right, choose Import/Update.

Apsona Take The Headache Out of Data Import_html_6be4971b9c0a7fd6

On this first import screen we’ll choose “Reject” as the option for how to handle Duplicates. This is what tells Apsona that if there are multiple rows in our spreadsheet with the same Contact, it should import just one of them. Not only that, Apsona is sophisticated enough to determine if you already have a Contact record for that donor — and not import another one. What a time-saver!

But what determines if it’s the same Contact? You can tell Apsona what your matching criteria is with the Match Fields picklist. In our Salesforce org, we uniquely identify Contacts with a combination of First Name, Last Name, and Email, so that’s what we’ll choose here:

Apsona Take The Headache Out of Data Import_html_56a664717bd4ed42

Data Import Step 1: choosing options in the Duplicates and Match fields picklists

Once we’ve chosen our spreadsheet as the Data Source, we can click Next and move on to data mapping.

Apsona will automatically detect if the column names in our spreadsheet match the Salesforce field names, and map them accordingly. You can change the mappings, of course, to import into whatever fields you like.

Since First Name, Last Name, and Email are set correctly here, we’ll leave those alone. The Donation related fields — Donation Amount and Type — are also set correctly to Do Not Import. These fields will be handled when we import the donation data in a subsequent step.


Data Import Step 2: Field mapping for Contact Data

If we leave the default option of Stop and Show Errors in the On data errors picklist, this will validate our data and let us know if we have any issues:

Apsona Take The Headache Out of Data Import_html_26e36a065f894ee7

From the Data Errors dialogue, we see that Apsona, as promised, recognizes duplicate rows in our spreadsheet. Not only that, it has also determined that we already have an existing Contact record for one of our donors. Excellent!

Now that we’ve validated our data, we can choose Omit Erroneous Records in the On data errors picklist and click Next to get to the final step of Contact import.

Apsona Take The Headache Out of Data Import_html_ea285a8a5b6fe774

Choose “Omit erroneous records” for the data error handling option

The Echo File: associates new record IDs with each relevant row in the spreadsheet.

After clicking the Import button on the final import screen, we have the option to download the import results:


Apsona Take The Headache Out of Data Import_html_d82982d0858e5c7e

Always click the Download button here to get your import results

Always download the import results! This is your “Echo File,” which contains the Contact IDs that will make importing related Donation records a breeze.

Apsona Take The Headache Out of Data Import_html_fc93284895347962

Echo File results

Notice that two columns have been added: Import Result, and Contact ID. And notice that the Contact ID for John Smith has been included for each John Smith row — even though the second John Smith record was not inserted. We also have the Contact ID for Barbara Wells, our existing Contact. And finally, even though we didn’t insert any Donation data on this round, the Donation columns are included in the Echo File.

Since we have all of our Contact IDs included in this handy Echo File along with all of our data, associating Donation records with the right Contact will be a snap. Just use the Echo File as the Data Source to import the Donations.

Apsona Take The Headache Out of Data Import_html_3986d3786400af0Donation import: use the Contact ID provided in the Echo File to associate the Contact with the Donation.

Add columns on the fly during import

Now that all of our donation fields are mapped, we’re ready to import. But, when we click the Next button, we see this error screen:

Apsona Take The Headache Out of Data Import_html_d417939245667017

Oh dear, do we have to go back and edit the Echo File to add these columns and start all over? Never fear, Apsona is here! From the Actions menu, choose Add column:

Apsona Take The Headache Out of Data Import_html_88f3c22cb92aeccf

For each missing column, choose the field name and enter a value.

Apsona Take The Headache Out of Data Import_html_c560e98744e02562

A new column will be created on the fly, and the value you specify will be filled in for every row in the spreadsheet:

Apsona Take The Headache Out of Data Import_html_9553dd2e487ec8f6

New “stage” field has been added with “Closed Won” as the value for each row

But wait, what about the Opportunity Name field? We don’t want the same value for every row for this field. Apsona has taken care of this too with another handy feature, which allows you to reference the values of other fields in the new field value.

Our organization’s Opportunity naming convention is Donor First Name, Donor Last Name, Amount, and Record Type. For example, the Donation record for the first row would be named John Smith 100 Auction Item.

Simply check the Replace column name references checkbox in the Add Column dialogue, and choose the column names you want to use:


Apsona Take The Headache Out of Data Import_html_f1e036f3047c5285

Use column name references for the Opportunity Name

Voila! Apsona creates the Opportunity Name column, with the correct values filled in.

Apsona Take The Headache Out of Data Import_html_910a7a2e45358847

As an added bonus, if you are using the Non Profit Success Pack, Opportunity Contact Role records will automatically be created when you import the new Opportunity records. The Primary Contact will be set to the Contact you designated, with the default role of Donor, and the Primary checkbox will be checked.

As you can see, Apsona’s smart Data Import tool make it easy to import spreadsheets of related data, such as donors and their donation records — even when some of the data is duplicated. And with the ability to add columns to the import on the fly without having to edit the original data file, the import is even easier.

Apsona Charts and dashboards

July 10th, 2015

Segment, slice and dice your data at will with Apsona’s Charting and dashboard add-on. This new add-on is the latest entrant to the Apsona suite of products. The question we were frequently asked was, “As Apsona reporting is so powerful, why can we not see the report data as charts and in dashboards?” Now, with Apsona’s Charting and dashboards, you can visualize and analyze your data in real time, right within your Salesforce org in your browser – there is no exchange of data with an external data warehouse.

Apsona charting supports several types of charts – horizontal and vertical bar charts, pie and line charts, KPI’s and Pivot tables. More chart types are on the way. You can create powerful charts with it – charts that cannot be constructed with native Salesforce. One example that comes to mind is a chart with multiple “layers”.  A multi-layer chart is one that contains two or more charts overlaid on each other.  For example, you can create a two-layer chart with one layer containing Campaign and expenditure information, overlaid with a second layer containing Campaign and Opportunity revenue information.  This way, you can get a side-by-side view of two related metrics (expenditure and revenue) in the same chart – even if those metrics are not available from the same report or object. You can also apply filter conditions to each layer if required. Layers can be added to vertical and horizontal bar charts.

Another powerful visualization available is the pivot table. With this device, you can use multiple dimensions in the rows and columns and metrics in the cells. You can also use multiple metrics in the cells, and essentially get all of the benefits of an Excel pivot table right in your browser.

Most organizations set goals and use metrics to measure performance towards those goals. This is where dashboards come in handy. You can now present the storyboard of your data as an Apsona dashboard. An Apsona dashboard is basically a collection of Apsona charts. It can include a combination of charts, and can easily be edited and previewed, and its charts resized and repositioned. You can add an Apsona dashboard to a Salesforce Home page and also as a related list in a Salesforce object.


To try out Apsona Charting and dashboards, please click the Feedback link in Apsona for Salesforce and send us a request. We look forward to feedback and suggestions on this add-on.



Fundraising Reporting with Apsona Multi-step Reporting

February 27th, 2015

Constituent reporting on individual donors and their giving histories is invaluable information for a non-profit organization. One such report requirement was posted on the Power Of Us Hub where the user wanted to find the increase or decrease in donation amounts by their donors. Here is the question:

  • My fundraising team wants to know how many donors increased their donation size from the last donation to the current one. I told them I could do Total Gifts This Year vs Total Gifts Last Year, but not Current Gift vs Previous Gift. Can you all think of a way to measure an increase (or decrease) in donation amount from one to the next?

Reading the responses it became obvious that this report is not possible to create with the native Salesforce reporting. However, with Apsona Multi-step Reporting, this report can be built in a few minutes. This report will require two query steps and one calculated step. Let’s take a look at how to build out such a report.

For the query steps, you first get the donors and filter them by campaign name or opportunity close date depending on the required criteria. Next, retrieve the opportunities to the donors, filter by close date and Role. Multi-step has the ability to get ranked data, which will need to be applied when querying for the opportunities. Limiting the 2 donations in descending order will give you the last two donation amounts to each donor. The steps will be woven together with the contact ID.

As there is no direct link between the Contacts (donors) and Opportunities (Donations), data for the two query steps will come from the Opportunity Contact Role (OCR) object. This object is best suited for this task, since it is treated as a stand-alone object in Apsona, and is also the junction between Donors and Donations. Therefore, you retrieve fields from the Donor (Contacts) as well as Donation objects (Opportunities) as they are both have lookup relationships from the OCR. Thus, you can retrieve the contact ID in both the steps and weave them together. Unlike in Salesforce reporting, you can use the same object more than once in Apsona Multi-step with different filter criteria and is ideal for this use case.

Now that you have the donors and their last two donations, you will need to find the difference between the amounts. For this you use a calculated step and add a formula as follows – {!Last 2 Donations 1.Amount} – {!Last 2 Donations 2.Amount}. Once you save and run the report will see the donor information, the last 2 donations amounts to the donor and the difference between the donation amounts.

When you run the report, you will also want to see the two donation amounts to each donor in a single row to make the comparison.

In a multi-step report, you have the option to display the output of a step as a sequence of blocks of columns instead of the usual row layout. Below is an image of the final report.


Donor Adam Dunn has donated $250,000 and $ 300, 000. You also see the difference in the Amount column as $50,000. The reason the amount is showing in parentheses is because the formula in the calculated steps is set to subtract Donation 1 from donation 2.

This shows how you can combine two important operations – transposing rows to columns, and using calculated values – to produce the result you want.

We hope you found this blog useful and try out Apsona Multi-step Reporting.

Updating data without VLOOKUP with Apsona

January 31st, 2015

Apsona for Salesforce has built-in tools that can highlight data quality issues, which you can find and replace when ever the need arises. Most businesses are aware that bad data quality can be a huge drain on their productivity and profitability. If you have an active Salesforce org you will always need to update data on a regular basis. Phone numbers, email addresses or mailing addresses of contacts and leads might need updating from time to time. Such mass updating cannot be done natively in Salesforce, but can be done with Apsona.

Here is a real use case. After running a mailing campaign, a user obtains a list of mail recipients who have unsubscribed. So she needs to remove the email address from the corresponding a set of contact records and replace the field value to null. She also wants to update the “Email Opt Out” checkbox for all the mail recipients. The recipient list is a CSV file with just the email addresses that have to be removed. Contact ID’s or even a First and Last name are not available.

With Apsona, you can match such a set of data records in a CSV format against your Salesforce data, and obtain the record ID for each record, if one is available. In this case, you use the email addresses CSV file as the data source and take advantage of Apsona’s import tool. You will be able to match the CSV data records against Salesforce data in steps 1 and 2 of the import/update process. In step 3, instead of clicking the Import button, you will need to click the ‘Download match results’ link. The resulting download will contain your data (the email addresses) with an additional first (leftmost) column containing the unique record IDs of the matched records. So we already not have the ID’s with just a few clicks. Half way there already.

Now for the replace part. In the downloaded file add another column called Email (Null values) and leave the cell values blank. Use the import tool again and choose the update action. Use the Contact ID as the look up field in step 1 and map the Email (null values) columns to Email in step 2. Complete the update in step 3 and you are done.

In the example, we saw how to find the unique ID’s and replace the field data values with a few clicks without having to go though the tedious VLOOKUP function in Excel. http://apsona.com/blog/updating-data-without-vlook-up-with-apsona/ http://apsona.com/blog/updating-data-without-vlook-up-with-apsona/ http://apsona.com/blog/updating-data-without-vlook-up-with-apsona/ http://apsona.com/blog/updating-data-without-vlook-up-with-apsona/ http://apsona.com/blog/updating-data-without-vlook-up-with-apsona/

Download Apsona for Salesforce from the AppExchange and try out your use cases. The app had a 30 day free trial.

Happy New Year from the Apsona Team

December 31st, 2014

As 2014 draws to a close, we thought you’d be happy to hear from the two Apsona elves that are hard at work creating new features to serve you better. So here are some features you might like.

  • The field selector for creating filters and for adding fields to reports is now easier to use as well as searchable for both objects and fields. You might look at the screen shots in our documentation, and better yet, try it out!
  • Administrators can now manage their Document and Mail merge licenses from within the Apsona application.
  • Document and Excel merge actions can now be invoked directly from either a detail page button or a Salesforce sidebar component, e.g., from the left side of your Salesforce home page. Visit our website for more information about this.
  • You can now generate address labels from the document merge tool.
  • As always, if you see bugs or glitches, or have questions or suggestions, please do not hesitate to contact us.

    Thank you for supporting the Apsona apps. Wish you the very best for 2015 and beyond.

    The Apsona team


    How To Generate Documents and Emails with Apsona

    April 29th, 2014

    Apsona’s new merge tool allows you to quickly generate Word, Excel and email directly from your Salesforce org. You can generate end-of-year tax summaries and thank-you letters to your donors, or a proposal or quote to your customer, as a Word document. You can choose to send donors an email via a HTML template if you want to go paperless. And you can also render your pledged and posted donations into a multi-sheet Excel report, complete with charts and pivot tables. All of this functionality is included in one package – Apsona Document and Mail Merge.

    Here are some of the key benefits of the Apsona merge add-on.

    • Entirely browser-based:  The merge process works entirely within your browser, and has no interaction with any external services. So your data never leaves your browser. This is unlike many competing products, which typically ferry your data over to the vendor’s server and carry out the merge process there.
    • Flexible field naming in templates: Template building is quick and easy: you don’t need to adhere to any particular naming convention of Salesforce field names. When you create the template, you simply make up any field names you want, and Apsona will discover those names and let you match them with data fields.
    • Compatible with existing templates: If you have already created document templates for competing products, Apsona’s merge tool can usually use them directly with no change.
    • Powerful data retrieval ability: You can leverage Apsona’s powerful reporting capabilities as the data source for the merges. Data can be retrieved directly from a Salesforce object, or from any Apsona report – single step or multi-step. Thus you can combine fields from multiple objects into one template. You can even include calculated (aggregate) fields such as total donation amount in the last six months, or the most recent gift date last year – calculations that might not be available through roll-up fields. Filters can be added to an existing merge on the fly.
    • Integrated with Salesforce buttons: The merge add-on integrates into Salesforce detail pages via custom buttons. Setting up a button is simple: Generate the code for the button from within Apsona and paste the code into the button’s JavaScript area. No need to mess with template IDs, query IDs or URLs, unlike competing products.

    Example: Sending a thank-you letter. A thank-you letter typically includes merge fields from the Contact object, such as the name and address. It might also include merge fields for sub-lists, e.g., a list of donations by that contact, containing the date, amount and campaign of each donation. To create such a merge:

    • To include a list of donations by the contact, you can build a table in the document template. The rows of the table might contain Donation merge fields, such as amount, payment method and donation date. As with other similar products, the leftmost cell in the table should include the TableStart field, which specifies a record group name following a colon. The rightmost cell in the table should similarly include the TableEnd field. These two markers indicate the region of the document that must be replicated, once for each Donation.
    • The data source for a template can be obtained from pre-built Apsona reports, or directly from an object. For example, the Contact information can come from the Contact object, and the list of donations can be obtained from a Donation report. Before running a pre-built merge template, you can also apply additional filter terms that are not specified in the Donation report.

    You can also generate customized emails using email templates stored in your Salesforce Communication Templates. As with documents, the tool can recognize merge fields in the email template and generate customized emails from the corresponding data. It can even attach a generated Word document with a generated email before sending it off. It can also handle email templates made with letterheads.

    A system administrator can set up merge actions using templates and their data sources, and all that the end user has to do is run an existing merge action whenever the need arises. The administrator can also manage merge actions, e.g., identify unused ones and delete them.

    You can try out the Document merge, Excel merge, Email merge and Email and Document merge when you download the Apsona for Salesforce app from the AppExchange. For more details, please visit our website or email us at support@apsona.com.

    We would like to thank Idealist Consulting for hosting this blog entry.

    How to find your top donors across multiple campaigns

    March 4th, 2014

    Building Salesforce reports can sometimes be very challenging. You start building a report and you realize you cannot access the objects you want, or use the appropriate lookups, or apply the relevant filter criteria. Apsona Multi-step Reporting (MSR) addresses some of these problems. This reporting app lets you build reports spanning any number of objects, native or custom.  It lets you traverse dependencies in either direction (parent-to-child or child-to-parent), and can handle multiple dependencies between the same pairs of objects. For example, you can create a report spanning the Campaign (parent) – Opportunity (child) – Opportunity Contact Role and back up the chain to Contact (parent). Another plus with Apsona MSR is the ability to run reports without having to create report types.

    A few key concepts to bear in mind:

    • Reports are built in steps.
    • Each step retrieves data from one object.
    • Each step carries its own filter conditions, independent of the other steps, and these conditions can be cross-object.
    • Steps are linked to previous steps via lookup fields or picklist values.

    We will use an example to illustrate these ideas. Frequently, non-profit organizations need to identify their top donors and learn their interests, so that the organization can target the right people in future campaigns. In that context, they often need to identify donors who donated in multiple campaigns, or those who have donated to two or more specific campaigns.

    As a simplified example, suppose we are conducting a dinner gala, to which we would like to invite our top donors from the Kids Literacy and the School supplies Campaigns. So we want a list of those donors who have contributed in both the campaigns. Intuition suggests that we can produce this report by first creating two lists of donors, one for each campaign, and then identifying the common ones. And this is precisely how you would build a multi-step report for this purpose. The Opportunity Contact Role (OCR) object is the basis of this report, since an entry in that object tells us the existence of a donation by a donor. The Donation object has a lookup to Campaign, and therefore accessible from the OCR object. So here are the three steps of the multi-step report.

    1. Find the donors for Kids Literacy. From the OCR object, get the Donor/Contact look up field. From the Donor object, get the donor’s Full Name. In the filter terms, select the Campaign field from the Opportunity object and select Kids Literacy as the value. Save the step.
    2. Find the donors for School Supplies. Clone Step 1 and just change the filter term value of the Campaign to School supplies. Save the step.
    3. Find the donors in both campaigns. From the Contact object, select the Contact ID field (required for linking to the previous steps), Full name and any other Contact fields you require for the report. Click the linkages tab. You will now see that you have two linkage options, one from each step. Notice that this is where we use the lookup field values retrieved by the previous two steps. You will need to select both the linkages, to enforce the condition that you want contacts from both campaigns. Save and run the report, and you have your desired results.

    Notice that this report retrieves data twice from the same object (Opportunity Contact Role), with different filter criteria. This capability is needed frequently in real-world situations. In addition, Multi-step Report data can be visualized in charts, groups, and pivoted matrices.

    We would like to thank Idealist Consulting for the opportunity to contribute this article to their blog.

    Blog Category:

    Managing file storage in your Salesforce Org

    February 21st, 2014

    Apsona for Salesforce now supports Attachments, Notes, Tasks and Events for all objects of Salesforce, native and custom. You can now import, export, update and delete data into these objects. So, why is this functionality different, when it is already supported for the existing native and custom objects? Apsona treats Attachments, Notes, Tasks and Events as linked to specific Salesforce objects. For example, the Contacts object in Apsona, has its own Contact Notes, Contact Attachments, Contact tasks and Contact Events objects. Similarly, any object that has associated Task records in Salesforce has its own “surrogate” Task object in Apsona. This is extremely handy as when you import notes or tasks to a contact – it is automatically linked to the contact. All you need to provide is the Contact ID or Full name during the import. Similarly, you can manage the Task records associated with any object simply by using its associated surrogate Task object in Apsona.

    With this functionality, the Apsona app is very useful to users for managing the organization’s file storage. Storage in Salesforce can be of two types – file and data. File storage includes files in attachments, the Documents tab, the Files tab, the File field, Salesforce CRM Content, Chatter (including user photos). The file storage limits for a Professional edition user is 612 MB, and for the Enterprise user, it is 2 GB. From what we have seen, Tasks and Attachments use up the storage limit rapidly. You might choose to treat this data as obsolete after a few years, and wish to delete it. The System Administrator can take stock of all the attachments, documents and archived tasks as they all count against storage. With the surrogate objects in Apsona, searching and filtering data to be deleted can be achieved with a few clicks. For example, let’s say you want to delete Contact tasks which are 3 years or older. Isolating such data from the Activities table in Salesforce – a single table which has all the tasks of all the objects in Salesforce can be very tedious. With Apsona, this task is simple, easy and quick. Here is how you would go about it:

    • Go to Settings – Configurations, and bring the Contact Tasks object to the menu bar as described here.
    • Create a filter by created date and user.
    • Click Tools – Delete All
    • Done!

    You can now comb through each object for their Notes, Attachments, Tasks and Events, and free up a lot of used storage place, thus cutting down your costs.

    Similarly you can manage your Documents too. A common use case with Documents is when a user leaves the organization and you want to transfer ownership to another user. You can do this with easily with Apsona. Get the Documents to the menu bar. Run a filter by author name. Click Tools – Update All. When you choose the Author field all the users in the org will dropdown as values. Select the user and click Update All. All the Documents will now have the new owner as the author.

    These are just a few use cases we have covered in this blog. We hope you find this functionality useful and we would love to hear about your use cases. If you have not installed Apsona for Salesforce, do download it from the AppExchange and try it out.

    Searching across a chain of objects in Salesforce

    December 28th, 2013

    Salesforce users often need to search for data records in one object that depend on conditions in a related object. Frequently, the dependency carries over to multiple related objects, or to chains of such relationships. For example, suppose you need to find all the Campaigns that have targeted the contacts from your Partner accounts. To retrieve those Campaign records, your primary search condition is imposed on the Account object (looking for Partner accounts). Having found those accounts, you must find the Contacts in those accounts, and then the Campaign Member records of those Contacts, and finally the Campaigns to which those member records refer. Thus we have a four-object chain of dependencies that must be traversed to produce the results you need.

    Such a query is not very easily constructed in native Salesforce. But Apsona for Salesforce provides the tools you need to solve problems like this. The way Apsona solves the problem is by repeatedly applying the idea of a filter, to produce what is called a nested filter, as follows. A filter is simply a name given to a specific search condition, associated with a specific object. For example, you can create a filter on the Account object, that asks for Account Type matching Partner, and name it Partner Accounts. You can then apply this filter in the Contact object, since the Contact is related to (actually, a child of) the Account object. When doing so, you would retrieve the Contacts of your Partner accounts, and you would use the Partner Accounts filter as a nested filter. You have thus carried a search condition on the Account object over to the related Contact object. You can then repeat this step over the entire chain of objects, thus producing the result you want. See the diagram below, showing the relationships among these objects.

    Here is the series of steps to produce your results:

    1. Start with the “primary” object that drives the filter condition. In this case, it is the Account object, since we start with the condition derived from partner accounts. Create a filter on the Account object, identifying your Partner Accounts. You can do this either in the console view (list-and-detail) or in the tabular views in Apsona. Save it with the name “Partner Accounts.”
    2. Create a filter on the Contact object. In doing so, if you open the Account panel of the filter builder, and select the record id field of the Account object, you will see the “in filter” option available. Select that option, and then select the “Partner Accounts” filter. Save this filter with the name “Contacts from Partner Accounts.”
    3. Create a filter on the Campaign Member object, using the Contact filter created in step 2, in the same way.
    4. Finally, create a filter on the Campaign object using the Campaign member filter from step 3.

    What we did here was make a filter on the primary object, namely Account, and applied the filter to the related object namely Contact. You can repeat this process as many times as you want, thus carrying filter conditions across a chain of relationships. We use the term nested filter to refer to a filter that uses another filter within it, in this manner.

    Searches, filters and reports in Apsona work across the board whether it is retrieve data for campaign management, sales management or case management. Apsona for Salesforce can be downloaded from our AppExchange listing for a 30 day free trial, and works with all editions of Salesforce.

    Apps for Good Webinar Series

    October 31st, 2013

    Our friends at Cloud for Good have been hosting the Apps for Good webinar series for the last several months now. They have had presentations by many of the best-known names in the Salesforce world, beginning with Cirrus Insight, Form Assembly and Click and Pledge, and most recently with GeoPointe.

    We are very pleased to have been selected to present Apsona for Salesforce and related add-ons as part of  the series.  We have had the pleasure of working with Cloud for Good for a few years now, having co-developed Over the Edge, a tool for easy data migration from Raiser’s Edge to Salesforce. The team at Cloud for Good have been a huge support to us an numerous ways, helping us improve our products and services, and we hope that we have been of some use to them as well. We are truly grateful to them for the relationship.

    If you are non-profit organization that uses Salesforce, you should definitely check out Cloud for Good and their offerings. Please register for the webinars, attend and give us your feedback. We look forward to the opportunity to present Apsona add-ons.