Sync offers between Everflow accounts using Claude Code slash commands.
Pull offer data from affiliate networks and push to your own Everflow network - including URLs, creatives, geo targeting, custom payout rules, and postback pixels.
-
Clone the repo
git clone https://github.com/iscale-llc/claude-code-everflow-sync.git cd claude-code-everflow-sync -
Start Claude Code
claude
-
Run setup wizard
/setupThe wizard will guide you through:
- Adding your destination network API key
- Auto-discovering your network ID and tracking domain
- Adding source network(s) with API keys
- Configuring advertiser verification tokens
-
Sync your first offer
/sync-offer
- Claude Code CLI installed
- Everflow API keys:
- Network API key for destination (where offers are created)
- Affiliate API key for each source (where offers are pulled from)
| Command | Description |
|---|---|
/setup |
Initial setup wizard - run this first! |
/sync-offer |
Full offer sync (all data, creatives, URLs, geo, payouts, postbacks) |
/sync-links |
Sync only landing page URLs for existing offers |
/sync-rules |
Sync only custom payout rules for existing offers |
/sync-postbacks |
Setup postback pixels in source network |
- First time? →
/setup - New offer? →
/sync-offer - URLs changed? →
/sync-links - Payouts changed? →
/sync-rules - Postbacks missing? →
/sync-postbacks
| Component | /sync-offer | /sync-links | /sync-rules | /sync-postbacks |
|---|---|---|---|---|
| Basic info (name, description) | ✓ | |||
| Thumbnail | ✓ | |||
| Payout events | ✓ | |||
| Landing page URLs | ✓ | ✓ | ||
| Creatives | ✓ | |||
| Geo targeting | ✓ | |||
| Custom payout rules | ✓ | ✓ | ||
| Postback pixels | ✓ | ✓ |
After running /setup, your .env.local will contain:
# API Keys
ISCALE_API_KEY=xxx # Destination network
ACME_API_KEY=xxx # Source network (example)
# Destination Configuration (auto-discovered by /setup)
ISCALE_NETWORK_ID=xxx
ISCALE_TRACKING_DOMAIN=xxx
# Per-Source-Network Configuration
ACME_AFFILIATE_ID=xxx # Your affiliate ID in source
ACME_ADVERTISER_ID=xxx # Advertiser ID in destination
ACME_VERIFICATION_TOKEN=xxx # For postback authenticationSynced offer data is stored locally (gitignored):
offers/
{source_network}/
{offer_id}/
offer.json # Full offer data from source
url_mapping.json # URL name → destination mapping
creatives/ # Downloaded images
iscale_offer_id.txt # Corresponding ID in destination
- Log into your Everflow network account
- Go to Settings → API Keys
- Copy your network API key
- Log into Everflow as an affiliate
- Go to Settings → API Keys
- Copy your affiliate API key
When syncing URLs, destinations include tracking parameters for attribution:
{landing_page}?uid={source_url_id}&oid={source_offer_id}&affid={your_affiliate_id}&sub5={transaction_id}
This ensures conversions can be attributed back to the source network.
- User clicks your tracking link → redirected to landing page with
sub5={transaction_id} - Conversion fires in source network
- Source network fires postback to your network with the transaction ID
- Your network records the conversion
- Geo targeting may show
nullin API responses but still works - Can't DELETE offer URLs via API - they get marked as
deletedstatus - Custom payout rules require specific URL IDs - sync URLs first
Built by Jason Akatiff - jasona@iscale.com or @jasonakatiff on Telegram
MIT