Hustle’s Account Level S3 Exports provide clients their Hustle data in a convenient format that must be accessed programmatically via Amazon Web Services Simple Storage Service, or S3 for short. To see what data is included in the exports, see our Hustle Data Dictionary.
Hustle will create the AWS S3 bucket, where a designated user, which the client provides, can expect read-only access to gzipped JSON-formatted files of their Hustle Data which updates twice a day every twelve hours (at 0500 and 1700 UTC).
Note: With the release of Hustle Account Level Exports, Hustle will no longer maintain support for organization level S3 exports.
- How do I request Account Level S3 Exports?
- Setting up Hustle Account Level S3 Exports
- Accessing your data
How do I request Account Level S3 Exports?
These exports aren’t a fit for everyone, so please contact your Client Success Manager to see if Hustle’s Account Level S3 Exports are right for you. Please note:
- The exports are JSON file formatted (CSV files are not supported).
- A working knowledge of AWS and command line is required.
- An AWS Account is required.
- There are additional costs associated with accessing the data known as requester fees.
- Requester fees are decided by Amazon. For more information about requester fees, see Downloading Objects in Requester Pays Buckets from Amazon.
Once you’ve connected with your Client Success Manager, they will connect you to support for set-up.
Setting up Hustle Account Level S3 Exports
The following will be requested to set up your Hustle Account Level S3 Exports:
- Contact name: to inform of any changes to the exports
- Contact email: to inform of any changes to the exports
- Hustle Account Name: (from your Hustle account in the hustle product)
- AWS IAM Account ID:<arn_aws_iam::############>
- AWS IAM user name: <aws_iam_user:username>
Note: We request the format of the username be “<hustle-account-name>-hustle-s3”
Accessing your data
Once your Hustle Account Level S3 Export bucket has been created, the support team will provide the information required to access the data.
To get started you’ll need:
- The IAM username that was shared with Hustle to create your S3 bucket.
- The account-hash provided to you by Hustle.
- Only the user provided to Hustle will be able to access the bucket.
- The account-hash is Base32 encoded (all lowercase a-z, only using digits 2-7).
To access your data, you must use the AWS command line with the following S3 URI formatting:
In that S3 URI:
- account_hash is the base32 encoded account id.
- org_id is the organization id (provided by Hustle in the product https://admin.hustle.com/o/<org_id>)
- table is the table name (Action, Agent, Goal, Lead, etc...)
Use the following command to see if the bucket exists:
aws s3api head-bucket --bucket hustle-account-export-<account_hash>/ --request-payer requester
- If there is no output, the bucket exists.
- If the output is ”An error occurred (404) when calling the HeadBucket operation: Not Found”, the bucket doesn’t exist.
If the bucket doesn’t exist:
- You’re using the wrong credentials (IAM User, IAM Account ID, Account Hash).
- The process to publish the bucket hasn’t run yet. (wait 12 hours).
Use the following command to list the contents of the bucket:
aws s3 ls s3://hustle-account-export-<account_hash>/ --request-payer requester
Use the following command to list the contents of an org subdirectory:
aws s3 ls s3://hustle-account-export-<account_hash>/<org_id>/ --request-payer requester
You'll find several subdirectories, also known as AWS folders, with gzip'd json files for each organization that map to tables in Hustle’s Data Dictionary. The objects are stored in keys that have the organization id as a prefix. The structure looks like this:
What if I can’t see the bucket?
Verify the AWS IAM user you provided to Hustle is the one you’re using to access the bucket.
Note: No additional permissions are required for users to access the bucket.
Additionally, verify the bucket account-hash is correct in Base32 encoding (all lowercase a-z, only using digits 2-7).
What if my bucket is empty?
It’s not likely that an empty bucket exists. If the bucket doesn’t exist, the job hasn’t run yet. If the bucket exists the data will be there and overwritten every 12 hours.
Since the job to publish the data only runs twice a day, if it hasn’t been 12 hours since the bucket was setup, it’s possible the job hasn’t run yet.
You can check if the bucket exists on the command line by running:
`aws s3 ls s3://hustle-account-export-<account_hash>/`
How do I add users to an account level export?
We don’t recommend this since it can complicate the S3 bucket’s access control lists. It’s better to create a dedicated AWS IAM user and rotate the keys when you want to revoke access. If you need an additional user added, email email@example.com with your IAM Account ID and the user you want to have access to the S3 bucket.