Intacct integration summary

Stitch’s Intacct integration relies on Intacct’s Data Delivery Service (DDS) for Amazon S3. Intacct DDS exports reports in CSV format to Amazon S3, which Stitch will then replicate using Key-based Incremental Replication.

While DDS supports other export targets, Stitch only supports replicating Intacct data through Amazon S3 at this time.

For more info about DDS, refer to Intacct’s documentation.

Note: This integration does not use the Intacct API. Only data available via DDS will be available for replication through Stitch.

Intacct feature snapshot

A high-level look at Stitch's Intacct (v1.0) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release Status Beta Supported By

Singer Community

Stitch Plan

Free

Singer GitHub Repository

Intacct Repository

DATA SELECTION
Table Selection

Supported

Column Selection

Supported

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Unsupported

Table-level Reset

Unsupported

Configurable Replication Methods

Unsupported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting Intacct

Intacct setup requirements

To set up Intacct in Stitch, you need:

  • An active subscription to Intacct’s Data Delivery Service (DDS). Stitch’s Intacct integration currently only replicates data from Amazon S3 buckets used by this Intacct feature.

  • An existing Amazon S3 bucket where Intacct publishes data via DDS. Stitch will not create a bucket for you.

  • Permissions in AWS Identity Access Management (IAM) that allow you to create policies, create roles, and attach policies to roles. This is required to grant Stitch authorization to your S3 bucket.

Step 1: Set up an Intacct Cloud Storage Target and automatic data delivery

In this step, you’ll set up a Cloud Storage Target and automatic data delivery in Intacct.

Step 1.1: Configure Amazon S3 access for Intacct

  1. Sign into your Amazon Web Services account.
  2. Navigate to the Amazon S3 bucket you want to use as the Cloud Storage Target for Intacct.
  3. Follow the instructions in Step 1 of Intacct’s documentation to enable Intacct to access the bucket.

Step 1.2: Define a Cloud Storage Target in Intacct

  1. Sign into your Intacct account.
  2. Follow the instructions in Step 2 of Intacct’s documentation to create the target in Intacct.

Step 1.3: Set up an automated data delivery in Intacct

In this step, you’ll create an automatic delivery schedule in your Intacct account.

  1. In your Intacct account, navigate to Company > Data Delivery Service > Automatic.
  2. Click the Add button.
  3. In the File attributes section, define the settings as follows:
    • Delimiter: Commas
    • Text qualifier (delimiter): Double quote (")
    • Encryption: Do not encrypt
  4. In the Delivery options section, define the settings as follows:
    • Cloud storage destination: Select the Amazon S3 Cloud Storage Target you created in Step 1.2.
    • Frequency: Select the frequency you want to use to trigger a data export in Intacct.
  5. In the Objects section, select the objects you want to include in the export. These objects will then be available for selection in Stitch.
  6. Save the schedule.

Step 2: Retrieve your Amazon Web Services account ID

  1. Sign into your Amazon Web Services (AWS) account.
  2. Click the user menu, located between the bell and Global menus in the top-right corner of the page.
  3. Click My Account.
  4. In the Account Settings section of the page, locate the Account Id field:

    An AWS account ID, highlighted in the AWS Account Settings page

Keep this handy - you’ll need it to complete the next step.

Step 3: Add Intacct as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Intacct icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch Intacct” would create a schema called stitch_intacct in the destination. Note: Schema names cannot be changed after you save the integration.

  5. In the Company ID field, enter the company ID you use to sign into Intacct.
  6. In the S3 Bucket field, enter the name of the bucket where the Intacct Data Delivery Service (DDS) outputs data. Enter only the bucket name: No URLs, https, or S3 parts. For example: intacct-stitch-bucket
  7. In the AWS Account ID field, paste the AWS Account ID you retrieved in Step 2.
  8. Optional: In the Path field, enter the path configured in Intacct for use in the S3 bucket.

Step 4: Define the historical sync

The Sync Historical Data setting will define the starting date for your Intacct integration. This means that data equal to or newer than this date will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond Intacct’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 5: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Intacct integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Step 6: Grant access to your bucket using AWS IAM

Next, Stitch will display a Grant Access to Your Bucket page. This page contains the info you need to configure bucket access for Stitch, which is accomplished via an IAM policy and role.

Note: Saving the integration before you’ve completed the steps below will result in connection errors.

Step 6.1: Create an IAM policy

An IAM policy is JSON-based access policy language to manage permissions to bucket resources. The policy Stitch provides is an auto-generated policy unique to the specific bucket you entered in the setup page.

For more info about the top-level permissions the Stitch IAM policy grants, click the link below.

Permission Name Operation Operation Description
s3:GetObject GET Object

Allows for the retrieval of objects from Amazon S3.

HEAD Object

Allows for the retrieval of metadata from an object without returning the object itself.

s3:ListBucket GET Bucket (List Objects)

Allows for the return of some or all (up to 1,000) of the objects in a bucket.

HEAD Bucket

Used to determine if a bucket exists and access is allowed.

To create the IAM policy:

  1. In AWS, navigate to the IAM service by clicking the Services menu and typing IAM.
  2. Click IAM once it displays in the results.
  3. On the IAM home page, click Policies in the menu on the left side of the page.
  4. Click Create Policy.
  5. In the Create Policy page, click the JSON tab.
  6. Select everything currently in the text field and delete it.
  7. In the text field, paste the Stitch IAM policy.
  8. Click Review policy.
  9. On the Review Policy page, give the policy a name. For example: stitch_s3
  10. Click Create policy.

Step 6.2: Create an IAM role for Stitch

In this step, you’ll create an IAM role for Stitch and apply the IAM policy from the previous step. This will ensure that Stitch is visible in any logs and audits.

To create the role, you’ll need the Account ID, External ID, and Role Name values provided on the Stitch Grant Access to Your Bucket page.

  1. In AWS, navigate to the IAM Roles page.
  2. Click Create Role.
  3. On the Create Role page:
    1. In the Select type of trusted entity section, click the Another AWS account option.
    2. In the Account ID field, paste the Account ID from Stitch. Note: This isn’t your AWS account ID from Step 1 - this is the Account ID that displays in Stitch on the Grant Access to Your Bucket page.
    3. In the Options section, check the Require external ID box.
    4. In the External ID field that displays, paste the External ID from the Stitch Grant Access to Your Bucket page: Account ID and External ID fields mapped from Stitch to AWS
    5. Click Next: Permissions.
  4. On the Attach permissions page:
    1. Search for the policy you created in Step 6.1.
    2. Once located, check the box next to it in the table.
    3. Click Next: Tags.
  5. If you want to enter any tags, do so on the Add tags page. Otherwise, click Next: Review.
  6. On the Review page:
    1. In the Role name field, paste the Role Name from the Stitch Grant Access to Your Bucket page: Role name field mapped from Stitch to AWS

      Remember: Role names are unique to the Stitch Intacct integration they’re created for. Attempting to use the same role for multiple integrations will cause connection errors.

    2. Enter a description in the Role description field. For example: Stitch role for Intacct integration.
    3. Click Create role.

Step 6.3: Check and save the connection in Stitch

After you’ve created the IAM policy and role, you can save the integration in Stitch. When finished, click Check and Save.

Step 7: Set tables and columns to replicate

To complete the setup, you’ll need to select the tables and columns you want to replicate to your data warehouse.

Check out the Schema section to learn more about the available tables in Intacct and how they replicate.

  1. In the list of tables that displays - or in the Tables to Replicate tab, if you skipped this step during setup - locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A green checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A green checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.

Note: If you change these settings while a replication job is still in progress, they will not be used until the next job starts.

Initial and historical replication jobs

After you finish setting up Intacct, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


Intacct replication

Stitch uses Key-based Incremental Replication to replicate data from Intacct integrations. To identify new and updated data for replication, Stitch will use file modification timestamps as Replication Keys and store them on a per-table basis. This means that only files dumped from a new Intacct data sync will be selected for replication.

While data from Intacct integrations is replicated using Key-based Incremental Replication, the behavior for this integration differs subtly from other integrations.

The table below compares Key-based Incremental Replication and Replication Key behavior for Intacct to that of other integrations.

Intacct Other integrations
What's replicated during a replication job?

The entire contents of a modified file.

Only new or updated rows in a table.

What's used as a Replication Key?

The time a file is modified.

A column or columns in a table.

Are Replication Keys inclusive?

No. Only files with a modification timestamp value greater than the last saved bookmark are replicated.

Yes. Rows with a Replication Key value greater than or equal to the last saved bookmark are replicated.



Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.