Archive for the ‘Uncategorized’ Category

Happy New Year from the Apsona Team

Wednesday, 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
    http://apsona.com/salesforcehttp://apsona.com/blog/happy-new-year-from-the-apsona-team/http://apsona.com/blog/happy-new-year-from-the-apsona-team/http://apsona.com/blog/happy-new-year-from-the-apsona-team/http://apsona.com/blog/happy-new-year-from-the-apsona-team/http://apsona.com/blog/happy-new-year-from-the-apsona-team/

    How To Generate Documents and Emails with Apsona

    Tuesday, 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

    Tuesday, 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

    Friday, 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

    Saturday, 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

    Thursday, 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.

    Thank-you Letters with Apsona’s Document Merge

    Friday, August 30th, 2013

    Thank-you appreciation letters by snail mail are the lifeblood of  nonprofit organizations. The donor needs to be convinced that he/she has made a  right investment and the donation will be used wisely. Appreciation letters need to be sent not only after every donation, but also once or twice a year. Personalizing the letters is key to a positive experience, but when this has to be repeated to hundreds of users, it is a major challenge to small/medium non profit organizations. The cost and effort of producing such personalized letters several times a year can be rather daunting.

    Apsona’s Document Merge add-on for Apsona for Salesforce is exactly what is needed in these cases.  Users can build flexible templates that can contain multiple fields drawn from multiple objects – Contact, Donations and so on. Aggregate fields and sub lists can also be included in the template.  Fields names in the template and in the tables can be adhoc and need not be exact matches to the field names in Salesforce or in the reports. What Apsona brings is the utter simplicity and flexibility of the entire process for the template builder. Apsona’s  DocMerge will produce  a single or batch of .docx document files from a .docx template and the results can be downloaded either as a.zip file  or as a single .docx file with many pages, one for each record and print them.

    Here is the simple step by step process.

    1. A thank you letter will typically have top level merge fields from the Contacts object like the name and address. When creating this letter template in Microsoft Word, create merge fields with the usual Quick parts – Field – merge field. You can also Apsona’s macro to build quick merge fields, and that is definitely a time saver and less tedious (our humble opinion).
    2. Next, if you need to include a list of donations to the contact, you build tables. Tables are very easily created. The leftmost cell in the table should include the TableStart field, which specifies a record group name following a colon. For example, for the tag TableStart:Donation, the suffix Donation will be the name of the record group for the table. This name is just a mnemonic indicating the kind of list being produced. You can make up any name you want, as long as it does not conflict with any other merge field name in the document. 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.

    3. The data source for a template can be obtained from pre-built Apsona reports, or directly from an object. For example, in a single template data for a list of donations can be obtained from a Donation report and data for a list of  in-kind donations can be got directly from the Assets object. Before running a pre-built merge template, you can also apply additional filter terms on the fly if required.

    That’s it — system administrators can set up templates and its data sources, and all that the end user has to do is run an existing merge action whenever the need arises.

    Apsona’s merge tool also supports Excel merge and email merge. For a more details on these features please visit our product description page.

    Filters in Apsona – Part 1

    Wednesday, July 31st, 2013

    Searching or querying of data is a very common need for Salesforce users. The required data that drives the filtering frequently does not reside in just one object, but rather in several related objects. For example, you might want to find Contact records whose Accounts are in a particular city, so that even though the data sought is Contact data, the filtering condition is on the related Account. And once you have figured out all the filtering conditions you want to apply, and retrieved the data you want, you would want to save the search, so that you can reuse it later.  Apsona for Salesforce offers powerful search and filter capabilities for all Salesforce objects, both native and custom, out of the box. All searches can be “cross-object” in the sense that you can look for records of one type based on conditions enforced by records of a related type.

    A query/filter can be built in two ways from the Apsona user interface.

    The first one is by clicking Search and More options, and the second is by clicking the filter dropdown and selecting New filter as seen in the screen shot above.

    The same filter editor opens up with both options, and here is where you will specify the search terms. When you click the drop-down to specify search terms, you will see a list of panels, one for each object. Each panel is labeled with the object name, and contains the fields for that object. The object at the top of the list is the one from which you are running the filter, with all its fields. Below that panel will appear all its related objects (and all their fields) which are one step away – basically the children and parents of that object. Note that one panel appears not just for each related object, but rather for each relationship. For instance, in the screen shot above, the Account object contains two lookup fields, Master Record and Parent Account, both referring to the Account object, so you see a panel corresponding to each.

    If the current object is the parent in the relationship, you will see an asterisk next to the name. In the above screen shot, the Contact or Lead panels both have asterisks shown, since the Account object is a parent of each of those objects. But if the current object is a child in the relationship (as in the case of the Master Record and Parent  Account relationships), no asterisk is shown.

    When running a filter in a one to many relationship, you can run a Quantified search. In this search, you look for records of one type such that all related records of a related type meet a certain condition, e.g., contact records for which all related tasks have a “completed” status. This search is called quantified because it uses the quantifiers all or none for related records. Let’s take an example where we want to find Accounts whose contacts have the salutation of Dr. (Doctor). We run a search from the Accounts object. For the search terms, we select the field “Salutation” from the Contacts table. Since the field is a picklist we get the option of choosing is among as one of the field operators. For the quantifier, let us choose the option for all records. Click search. We now get all the Accounts whose contacts have the salutation Dr. Notice that the returned list might include Accounts which have NO contacts in them. This is because an Account with no contacts satisfies – albeit vacuously – the requirement that all its contacts have a salutation of Dr.  Since we selected the quantifier as “all records”, Accounts with no contacts are also entitled to qualify.

    This is just one option of the 3 options available in the quantified search. The” no records” and the “atleast for one record” are equally powerful and will be touched upon in the coming blogs.

    You can try out these searches and more by downloading Apsona for Salesforce from the AppExchange.

    Batch Gift Entry – A new add-on to Apsona for Salesforce

    Saturday, June 29th, 2013

    If you are a non-profit organization that receives periodic gift checks that you need to enter into your Salesforce database, you know that the process can be a bit tedious. With each gift check, you will need  to navigate through quite a number of pages to search, to create or update data. Each gift in turn needs to be linked to the right Opportunity, Account, Contact, Contact Role and Payment objects. If the Opportunity and Contact records do not exist in the Salesforce database, they will need to be created and the corresponding gifts need to be linked to them.

    To help with this situation, we at Apsona have created a new add-on, Batch Gift Entry (BGE), intended for non-profit organizations who use the Salesforce Foundation’s Non-profit Starter Pack (NPSP).  This add-on takes care of the both the scenarios – creating new records as well as updating existing ones. You can enter gifts in batches, where each batch contains a list of gift items to be committed, Once you have entered a batch and committed it, all the items in the batch are copied into the appropriate fields in the Payment and Donation records. New Donation, Payment, or Donation Contact Role records are created as necessary and are automatically linked together to maintain consistency with the NPSP data model. The user interface is designed to offer a keyboard-friendly process for the batch gift entry user and to make the entire data entry sequence as quick and painless as possible.

    The Batch Entry interface works just like most other aspects of Apsona, showing a searchable list of batches you have created. You can create a batch whose items contain any subset of fields from your Opportunity and Payment objects. You can also clone existing batches, so that you don’t have to recreate any of the logic from previous batches. The batch entry screen includes the usual search, sort and in-place edit features for manipulating the batch items in uncommitted batches.

    When you have finished entering all the gifts and click the Commit button, a cross check is made to ensure that the number of items and amount match the numbers when the batch template was created. Any mismatches will keep the batch from being committed.

    You can also run filters and reports on the batches needed for reconciliation with Apsona’s Multi-step Reports. For example, you can run a report for Batch Name, Commitment Date, First Name, Last Name, Donation Name, Amount, Payment Type, Check Number and Check Date.

    Most of our enhancements to the Apsona apps are user requests and feedback. So we look forward to all your valuable feedback and comments. Do keep them coming! Please visit our website page for more details. You might also enjoy reading Judi Sohn’s blog where she comprehensively covers Apsona’s Batch Gift Entry.

    And grateful thanks to our friends at KELL Partners for initiating this project and for all their input and support. Please make sure to read our product page for Batch Gift Entry, watch a video, and try it out!

    How to quickly create merge fields in Word

    Wednesday, May 29th, 2013

    As part of the development of our document merge tool, we work quite a bit with Microsoft Word templates. And naturally, our testing process requires us to create lots and lots of merge fields in Word. Now if you have worked with merge fields, you know that creating a merge field can be a bit tedious: You have to click Insert – Quick Parts – Field, scroll down in the Field names panel, click MergeField, and then type in the name of the field into the Field name box. And you have to do this for every field you need. That’s a lot of clicks, particularly when you want to create a good many merge fields.

    Being the lazy folks we are, we wanted to speed up this process. So we created a little WordBasic macro to help us along. With this macro in place, when we want to create a new merge field, all we need to do is

    1. type in the name of the field into the Word document, just the same way we type any other text;
    2. select the field name text; and
    3. click a button.

    Voila. The text is instantly converted into a merge field.

    Below is the text of the macro.

    Sub MakeMergeField()
    Selection.Copy
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "MERGEFIELD """ + Selection.Text + """ ", PreserveFormatting:=True
    End Sub

    And here are the steps for setting up a button for this macro in Word. Keep in mind that even though this list of steps seems a bit long, it’s actually quite straightfoward. This is a one-time setup, and you will have the button available anytime you want.

    1. Make the Developer tab available in your Word ribbon. See directions for doing this in Word 2007 and Word 2010.
    2. Click Developer – Macros. In the resulting popup, type MakeMergeField in the Macro name box, and click the Create button. The Visual Basic editor appears, with the macro outline already set up, and the cursor placed in the macro body.
    3. Copy the three lines in the body of the macro text above (between the Sub and End Sub lines) and paste them into the body of the macro.
    4. Close the Visual Basic editor.
    5. Create a new button for this macro in your quick-access toolbar.

    Here is a short video demonstrating the steps. Enjoy! We hope you find this useful.