Grin
Grin is a creator management platform used to recruit influencers, run campaigns and activations, track the content creators publish, and handle the payments, products and discount codes behind those partnerships. With Weld you can sync your Grin data into your data warehouse and combine it with your ecommerce and ad platform data to report on creator performance and spend.
Features
| Feature name | Supported | |
|---|---|---|
| Column Hashing | True | Column level |
| Blocking | True | Column level |
| Incremental | True | |
| Custom data | False | |
| History | True | |
| ReSync | True | Table level |
| Templates | False |
Data Schema
Setup Guide - ELT
Prerequisites
You need a Grin API key. API keys are created in Grin under your account settings — if you cannot see the API section, ask your Grin administrator or your Grin representative to issue a key for you. Weld only reads from Grin — it never writes back.
Step 1 - Create your Grin API key
- Sign in to Grin with an account that can administer your Grin workspace.
- Open your account settings and create a new API key for Weld.
- Copy the key — Grin only shows it once.
Step 2 - Create the connection
- In the Weld app, navigate to Connections and click + New Connection.
- Search for Grin and select it.
- Enter the destination schema name of your choice. This name is used to identify the connection in future syncs.
- Paste your API key.
- Click Connect to validate the key and establish the connection.
Step 3 - Data To Sync
Select the tables you wish to include in the sync. You can view the schema, remove columns or hash sensitive information.
The connector exposes 40+ streams, covering:
- Accounts and users —
account_brand,account_deposit,account_domain,account_team,account_user - Creators and contacts —
contact,contact_address,contact_campaign,contact_network,contact_order,contact_payment,contact_tag,relationship_stage - Campaigns and activations —
campaign,campaign_content,campaign_conversion,campaign_deliverable_task,campaign_payable,activation,activation_brief,activation_member - Partnerships and proposals —
partnership,proposal,proposal_deliverable,proposal_deliverable_content,deliverable_task,task - Content —
content,content_right,media_library_folder - Attribution and revenue —
affiliate_link,affiliate_link_group,conversion,discount_code,ecommerce_account - Products —
product,product_collection,product_option_value,product_selection - Payments —
payable,payment_account - Custom properties —
custom_property,custom_property_option,custom_property_value,contact_custom_property_value
Only select the tables you actually need
The Grin API is heavily rate limited. Weld respects those limits and backs off when Grin asks it to, which means the more streams you enable, the longer every sync takes — and a wide selection can make the initial sync take a very long time to complete.
We strongly recommend selecting only the tables you have a concrete reporting need for, and adding more later if a use case calls for it. Streams with substreams (content, partnership, product, proposal, contact_payment, affiliate_link, account_user) are the most expensive to sync, since Weld makes additional requests per parent record.
Step 4 - Configure sync
- Select how often you would like the data to sync.
- Choose a start date to limit how far back the initial sync goes. Because of the API's rate limits, pick the shortest period that covers your reporting needs.
- Provide a unique destination table name.
Weld will take over from here and commence syncing data from your Grin account.
How syncing works
Incremental syncs
Streams that Grin exposes a modification timestamp for sync incrementally: the first run backfills from your chosen start date, and each run after that asks Grin only for records changed since the previous successful sync. Records are merged into the destination table on their id, so a record updated in Grin is updated in place rather than duplicated.
Smaller reference streams — such as relationship_stage, custom_property and payment_account — are refreshed in full on every run, since they are cheap to fetch.
Rate limits
Grin enforces strict rate limits per API key. Weld handles this for you by throttling requests and retrying with a backoff when Grin returns a rate limit response, so syncs complete rather than fail. The practical trade-off is time, not data loss:
- Keep your enabled table selection as small as possible.
- Prefer a lower sync frequency for large selections.
- If you use the same Grin API key elsewhere, that tool competes with Weld for the same limit.
The initial sync backfills your selected tables in a single run, so it can take a while to complete. Subsequent syncs are much smaller — if the first run looks slow, let it finish before changing your configuration.
Deleted records are not captured
Grin's API does not report deletions, so deleting a record in Grin leaves the corresponding row in your warehouse untouched — it simply stops receiving updates. If you need the destination to match Grin exactly, run a ReSync of the affected table.