My organization uses QuickBooks Online Plus, and implemented the Classes system. We also use Campaigns as Campaigns in CiviCRM, so all the previous solutions do not work for us.

So, we came up with a possible solution, but it would require a change to the export function. We are thinking that we use the Financial Account name to hold both the Account Name and the Class Name. For example, we have two Financial Accounts: Member Dues:National and Member Dues:Chapter. The colon separates the account from the class. But for this to work in the export, I need to get the journal entry transaction before it gets written.

We can't use the Campaigns feature for this because we do have fundraising campaigns as well as petitioning and membership campaigns. The name seems to be our best solution, but we're not sure how to get it to work. It's beginning to look like it would be a patch to core. ::shudder::

2 Answers 2


Yes, its possible to alter the content of exported files. Either you can create your separate export type or can use combination of hook_civicrm_batchItems and hook_civicrm_batchQuery

  • Thank you, Pradeep, but those hooks look like they allow the change of the input for the exporting. What I would like to do is change the actual exported line. I want to be able to fill the CLASS column in an if file. The template for the iif file doesn't export class.
    – Logan Bear
    Apr 24, 2020 at 13:57

What I ended up doing was customize the template for the iif export: [civicrm.template_dir]/CRM/Financial/ExportBatch/iif.tpl

And the ExportFormat BAO: [civicrm.php_dir]/CRM/Financial/ExportBatch/iif.php

We enter the Financial Account name now as: [Account Name].[Class]

This was decided because the colon and slash were used in Account Names. The PHP file breaks out the class from the Account Name, if used. Otherwise the Class name is NULL.

The template then exports the class name in the appropriate column. And the iif file properly imports.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.