CSV Accounting Export
The CSV Accounting Export integration automatically generates CSV files from your authorised sales invoices and delivers them via SFTP upload, email, or both. This is ideal if your accounting software isn't directly supported by EventWorks but can import CSV files.
Getting There
Go to Settings > Integrations and find the CSV Accounting Export card. Click Enable to configure the export settings.
Overview
Once enabled, the CSV export:
- Automatically generates CSV files when a sales invoice is authorised
- Delivers via SFTP to a server of your choice
- Delivers via email to one or more email addresses
- Uses customisable field mapping with a template system for complete control over the output format
Key Concepts
Automatic Trigger
CSV files are generated automatically when a sales (receivable) invoice changes to Authorised status. No manual action is needed — the export happens in the background.
Field Map Templates
The CSV export uses a template system to define which data appears in each column. Each row in the field map defines one column with a header name and a template expression. This gives you full control over the output format to match your accounting software's import requirements.
Row-Per-Line-Item
The CSV contains one row for each line item on the invoice. Every row has access to both the line item data and the parent invoice data, so you can include invoice-level details (like the invoice number) alongside line-item details (like quantity and price).
How To...
Enable the CSV Export
- Go to Settings > Integrations.
- Click the CSV Accounting Export card.
- Configure the delivery method(s):
- Configure the output format:
,). - File name — A template for the output filename.
- Click Save.
Configuring the Field Map
The field map defines the structure of your CSV file. Each line specifies one column using the format:
ColumnHeader||{{ template_expression }}
For example:
Invoice Number||{{ invoice.number }}
Date||{{ invoice.date }}
Description||{{ lineItem.description }}
Quantity||{{ lineItem.quantity }}
Unit Price||{{ lineItem.unit_amount }}
Tax Code||{{ lineItem.tax_code }}
Total||{{ lineItem.line_total }}
Account||{{ invoice.account.name }}
Event Code||{{ invoice.event.code }}
Available Invoice Fields
| Expression | Description |
|---|---|
{{ invoice.number }} |
Invoice number |
{{ invoice.date }} |
Invoice date |
{{ invoice.due_date }} |
Due date |
{{ invoice.po_number }} |
Purchase order number |
{{ invoice.subtotal }} |
Invoice subtotal (before tax) |
{{ invoice.tax }} |
Total tax amount |
{{ invoice.total }} |
Invoice total (including tax) |
{{ invoice.currency_id }} |
Currency code |
{{ invoice.exchange_rate }} |
Exchange rate |
{{ invoice.event.code }} |
Event code |
{{ invoice.event.name }} |
Event name |
{{ invoice.account.name }} |
Account/client name |
{{ invoice.contact.first_name }} |
Contact first name |
{{ invoice.contact.last_name }} |
Contact last name |
{{ invoice.contact.email }} |
Contact email |
Available Line Item Fields
| Expression | Description |
|---|---|
{{ lineItem.description }} |
Line item description |
{{ lineItem.quantity }} |
Quantity |
{{ lineItem.unit_amount }} |
Unit price |
{{ lineItem.tax_code }} |
Tax code |
{{ lineItem.tax_rate }} |
Tax rate (decimal, e.g. 0.2 for 20%) |
{{ lineItem.tax_amount }} |
Calculated tax amount |
{{ lineItem.line_amount }} |
Line total before tax |
{{ lineItem.line_total }} |
Line total including tax |
{{ lineItem.discount }} |
Discount value |
{{ lineItem.discount_amount }} |
Discount as currency amount |
{{ lineItem.discount_rate }} |
Discount as percentage |
You can also access related data through the line item's relationships, such as {{ lineItem.type.name }} for the cost type name.
Configuring the Filename
The filename is also a template with access to the invoice variable. For example:
invoice-{{ invoice.number }}.csv
This would produce filenames like invoice-INV001.csv.
Delivery Methods
The CSV can be delivered in two ways, and both can be active simultaneously:
SFTP Upload:- Enter your server's host, port (default: 22), username, and password.
- The CSV file is uploaded automatically when generated.
- Enter one or more email addresses separated by commas.
- The CSV is sent as an email attachment.
Disconnect the CSV Export
- On the CSV Accounting Export card, click Disconnect.
Settings & Configuration
All CSV export settings are configured in the connection modal at Settings > Integrations. You need the edit settings permission.
Delivery Settings
| Setting | Description |
|---|---|
| Email address | Comma-separated email addresses for delivery |
| SFTP Host | SFTP server hostname |
| SFTP Port | SFTP port (default: 22) |
| Username | SFTP username |
| Password | SFTP password |
Format Settings
| Setting | Description | ||
|---|---|---|---|
| Field Map | Column definitions using Header\ |
\ | {{ template }} format, one per line |
| Separator | Column separator character (default: ,) |
||
| File name | Filename template with access to the invoice variable |
Tips & Best Practices
Tip: Test your field map with a simple configuration first, then add more columns once you've confirmed the basic format works with your accounting software.
Tip: Use both SFTP and email delivery during initial setup — email lets you verify the output before relying on SFTP alone.
Frequently Asked Questions
Q: When is the CSV generated?Automatically when a sales (receivable) invoice is changed to Authorised status. Purchase invoices are not included.
Q: Can I generate a CSV manually?No. CSV generation is triggered automatically when invoices are authorised. There is no manual export button.
Q: What if the SFTP upload fails?If the SFTP upload fails, the error is logged. The email delivery (if configured) still proceeds independently.
Q: Can I use a different separator for tab-separated files?Yes. Change the Separator field to a tab character or any other delimiter your accounting software expects.
Q: How many rows are in each CSV?One row per line item on the invoice, plus a header row. An invoice with 5 line items produces a 6-row CSV.