Direct Exact Online integration for Snowflake
Automate the data flow from Exact Online to your Snowflake environment. Secure, scalable and configured within minutes via the Snowflake Marketplace.
Download on the Snowflake Marketplace
The foundation for scalable analytics
A reliable data stream is the foundation of any modern data architecture. Our connector unlocks Exact Online data directly into your Snowflake environment, ready for BI dashboards and AI applications.
Flexible to set up
Select the desired API endpoints and set your own sync schedules in Snowflake. Whether you use one administration or hundreds: you manage the setup completely centrally within your own environment.
Efficient data processing
Optimize your data storage with incremental loading. By fetching only changed records, you save on API quota and ensure that your Snowflake tables are always up-to-date.
Full auditability
Monitor the process through detailed synchronisation logs. Gain instant visibility into the status of each run, ensuring a reliable and auditable data pipeline.
Documentation and FAQs
Documentation
Exact Online covers both accounting and CRM, providing firm foundations on which to build a strong company. Not supported by Exact Online.
About Exact Online
Exact Online gives you everything you need in a single integrated online package. In addition to accounting and CRM, Exact Online provides specific solutions for your industry.
Get the Connector in Snowflake
You can install the Exact Online Connector from the Snowflake Marketplace with only a few clicks!
Obtain Credentials
This connector is based on OAuth2 authentication. Follow the instructions in the Exact Online API documentation to obtain your credentials.
Available Endpoints
Check the full Exact Online API endpoint documentation.
| Endpoint | Incremental Ingestion |
| Assets | Not supported by Exact Online |
| Assets - Assets Groups | Not supported by Exact Online |
| Budget - Budgets | Not supported by Exact Online |
| Cashflow - Payment Terms | Not supported by Exact Online |
| CRM - Accounts | Not supported by Exact Online |
| CRM - Addresses | Not supported by Exact Online |
| CRM - Contacts | Not supported by Exact Online |
| CRM - Opportunities | Not supported by Exact Online |
| CRM - Quotation Headers | Not supported by Exact Online |
| CRM - Quotation Lines | Not supported by Exact Online |
| Deleted | Not supported by Exact Online |
| Documents - Document Attachments | Not supported by Exact Online |
| Documents - Documents | Not supported by Exact Online |
| Financial - GL Accounts | Not supported by Exact Online |
| Financial - GL Classifications | Not supported by Exact Online |
| Financial - Transaction Lines | Not supported by Exact Online |
| Financial - Reporting Balance | Not supported by Exact Online |
| Financial - Profit Loss Overview | Not supported by Exact Online |
| Financial - GL Account Classification Mappings | Not supported by Exact Online |
| Financial - Aging Overview | Not supported by Exact Online |
| HRM - Cost Centers | Not supported by Exact Online |
| HRM - Leave Absence Hours By Day | Not supported by Exact Online |
| HRM - Schedule Entries | Not supported by Exact Online |
| HRM - Schedules | Not supported by Exact Online |
| Inventory - Item Storage Locations | Not supported by Exact Online |
| Inventory - Item Warehouses | Not supported by Exact Online |
| Inventory - Serial Batch Numbers | Not supported by Exact Online |
| Inventory - Stock Positions | Not supported by Exact Online |
| Inventory - Stock Serial Batch Numbers | Not supported by Exact Online |
| Inventory - Storage Location Stock Positions | Not supported by Exact Online |
| Logistics - Items | Not supported by Exact Online |
| Logistics - Purchase Item Prices | Not supported by Exact Online |
| Logistics - Sales Item Prices | Not supported by Exact Online |
| Logistics - Supplier Item | Not supported by Exact Online |
| Manufacturing - Shop Order Material Plans | Not supported by Exact Online |
| Manufacturing - Shop Order Routing Step Plans | Not supported by Exact Online |
| Manufacturing - Shop Orders | Not supported by Exact Online |
| Payroll - Bank Accounts | Not supported by Exact Online |
| Payroll - Employees | Not supported by Exact Online |
| Payroll - Employment CLAs | Not supported by Exact Online |
| Payroll - Employment Contracts | Not supported by Exact Online |
| Payroll - Employment Organization | Not supported by Exact Online |
| Payroll - Benefits | Not supported by Exact Online |
| Payroll - Salaries | Not supported by Exact Online |
| Payroll - Employment Tax Authorities General | Not supported by Exact Online |
| Project - Project Planning | Not supported by Exact Online |
| Project - Projects | Not supported by Exact Online |
| Project - Project WBS | Not supported by Exact Online |
| Project - Time Cost Transactions | Not supported by Exact Online |
| Purchase Order - Purchase Orders | Not supported by Exact Online |
| Sales - Sales Price List Volume Discounts | Not supported by Exact Online |
| Sales Invoice - Sales Invoices | Not supported by Exact Online |
| Sales Order - Goods Deliveries | Not supported by Exact Online |
| Sales Order - Goods Delivery Lines | Not supported by Exact Online |
| Sales Order - Sales Order Headers | Not supported by Exact Online |
| Sales Order - Sales Order Lines | Not supported by Exact Online |
| Subscription - Subscription Lines | Not supported by Exact Online |
| Subscription - Subscriptions | Not supported by Exact Online |
Need help?
Did we forget to implement an endpoint that you would like or did you find a bug? If you didn't find your answer in the FAQs, let us know!
If you have an issue, check the known-limitations-and-issues section to see if we are already working on it!
Getting Started
How to install a Connector Application
- Sign in to your Snowflake account.
- Head to the Marketplace section and look for a DDBM Connector Application.
- Press on the Get button and wait for the installation to complete
How to create a new Connection
- Open the installed application (see How to install a Connector Application above). You will land in the
Homepage. - Head to the
Connectionspage to create a newConnection. - Fill in the Form in the "Manage Connections" section.
- Click on the blue button to generate the pre-filled script.
- Copy and paste the script into a new Worksheet and execute it completely.
- Go back to the app and you will see the new connection appear under the "Current Connections" section.
You can select an endpoint and see if your new Connection has access to it. If you get an error on this point, it means one of the following:
- The credentials introduced are not valid. In this case, recreate the connection making sure there are no copy-paste errors or obtain a new set of credentials.
- The credentials introduced do not have access to this specific endpoint. This can probably be fixed by changing the scopes in the setting of the Connector (Personio, Hubspot...) Developer account.
How to create a new Configuration
- Head to the
Configurationspage to create a newConfiguration. - Select a previously created
Connection(see How to create a new Connection above). - Fill in the form, providing a configuration name of your choice, a target database/schema... (*)
- Press the Blue button and you will see the new
Configurationappear in the "Current Configurations" section after a few seconds.
With a Configuration created you can already fetch data, although we recommend creating Schedules (see How to create a new Schedule below).
You can also edit Configurations selecting them and changing the form.
(*) If the target database/schedule already exists, check the How to use pre-existing databases and schedules below.
How to create a new Schedule
- Head to the
Schedulespage to craete a newSchedule. - Select a previously created
ConnectionandConfiguration(see How to create a new Connection/Configuration above). - Fill in the form, providing a schedule name of your choice, whether to use Full Refresh or Incremental jobs and the when to periodically run the job.
- Press the Blue button and you will see the new
Scheduleappear in the "Current Schedules" section after a few seconds.
With a Schedule created, you data will periodically be fetched on the background. You can check the history of past jobs in the Job History page.
How to use pre-existing Databases and Schedules
When creating a Configuration you will have to provide where the fetched data has to be saved in the end. New tables have to be created on a Database and Schema of your choice. If either of these already exist, the application will need some privileges to be able to create tables in them.
Pre-existing Database
Execute the following command:
grant usage, create schema on database <db_to_use> to application <app_name>;
Pre-existing Schema
Execute the previous command and the following one:
grant usage, create table on schema <db_to_use>.<schema_to_use> to application <app_name>;
Frequently Asked Questions
What is the pricing of your Connectors?
After a Free 7-day Trial, we will only charge:
- $0.10 per refresh
- $5 / per million rows ingested
As an example, let's say that you set up a scheduled task during the working days at 7:00 a.m. for your DDBM Exact Connector, and that during each refresh you ingest 2000 rows (only new and updated rows, thanks to our incremental ingestion). In that case, you would only pay $0.55 per week!
Besides that, our applications are built in the Native Snowflake Apps, and, since they run on your own Snowflake instance you will be charged by Snowflake for the warehouse compute cost.
How do I upload data into preexisting databases and schemas?
Configuring a connection to save data on preexisting databases or schemas will throw an error if the privileges were not properly granted to the application.
Solution
Execute the following commands
SQL
-- For preexisting databases grant usage on database <db_to_use> to application <application_name>; grant create schema on database <db_to_use> to application <application_name>; -- For preexisting databases and schemas grant usage on schema <db_to_use>.<schema_to_use> to application <application_name>; grant create table on schema <db_to_use>.<schema_to_use> to application <application_name>;
These commands will grant the application permission to see, use and create new tables on preexisting databases and schemas.
What happens if I set up wrong credentials or my task ingestion fails?
We will only charge for data that has actually been fetched and correctly ingested in your account. If all calls to the API return errors, then there will be no cost for that run.
If you have made a mistake with your credentials, simply delete the connection and create a new one with the correct credentials. Make sure to test the connection before setting up the scheduled task and your data will be ready in no time!
Incremental Ingestion vs. Incremental Fetching
- Incremental Ingestion: All our connectors have an incremental ingestion strategy implemented. When data is fetched from an API (Personio, Active Campaign, Hubspot...) we check the last time it was updated and compare it with the previously saved data in your Snowflake account. If the data in your account is already up to date, we discard the fetched data and you are not charged for it. Not all endpoints provide the information necessary for this check and, in those cases, we ingest the data.
- Incremental Fetching: Some APIs allow to fetch data given some date and time parameters. In those cases we can fetch only the updated data from the APIs, making the data ingestion process much faster and cheaper. The amount you will be charged is the same as in the Incremental Ingestion process, but it still be much cheaper because the time that the warehouses are running can be much shorter. Not all APIs provide the information necessary for this method and, in those cases, the Incremental Ingestion strategy applies.
Limitations and Known issues
Limitations
Only one task can be configured per connection
For now, only one task can be set up per connection.
Workaround
If you need different refreshing schedules for different endpoints, create different connections with the same credentials (but different endpoint selection, if you wish so) and configure different tasks for them.
Leaving the App / App Becoming Idle
Leaving the app during data fetching using the "Fetch Data" button or letting the app idle may cause incomplete data loading.
Workaround
Stay in the app while fetching data or use tasks, which are not affected by this behavior.
Wrong Credentials
- Limitation: If you enter incorrect credentials in the connection script, the log table may incorrectly show success. This doesn't apply to OAuth authentication, which will report an error.
- Workaround: Always provide the correct credentials and use the "Test Connection" button to verify before fetching data or setting tasks.
