Step-by-step instructions to connect your ad platforms for automated reporting. We only request read permissions—we cannot modify your data.
Link your Shopify store to enable sales and product reporting.
5-10 minutesLink your ad accounts for campaign performance data.
10-15 minutesEnable automated daily reports and alerts in your Slack workspace.
10 minutesLink your Reddit Ads account for campaign reporting.
10-15 minutesCreate a custom app that allows us to read your store data for automated reporting.
Creates a custom Shopify app with READ-only permissions. We can view products, orders, and customers—but we cannot modify anything in your store.
https://[your-store].myshopify.com/adminGoodHelp Reporting
read_ordersread_productsread_customers
The token is only shown ONCE. Have a secure place ready to paste it before clicking reveal.
If you forgot to copy it, you'll need to uninstall and reinstall the app to generate a new one.
| What We Need | Where to Find It | Example |
|---|---|---|
| Store URL | Your browser URL bar | my-store.myshopify.com |
| Access Token | From Step 4 above | shpat_5c3a1c57e5701... |
Install the Happy Robots reporting bot to receive daily summaries and alerts in your Slack channels.
Installs a reporting bot that posts daily summaries and alerts to your Slack channels. The bot can only post to channels where you've invited it. It cannot read your messages or access data outside of what we explicitly send to it.
{
"display_information": {
"name": "GoodHelp Reporting Bot",
"description": "Daily ad performance reports and alerts",
"background_color": "#4a154b"
},
"features": {
"bot_user": {
"display_name": "GoodHelp Reporting Bot",
"always_online": true
},
"slash_commands": [
{
"command": "/adstats",
"description": "Get ad performance stats for a client",
"usage_hint": "[client_name] [metric] [date_range]",
"should_escape": false
},
{
"command": "/qa-review",
"description": "Start pre-launch campaign QA checklist",
"usage_hint": "[campaign_name]",
"should_escape": false
}
]
},
"oauth_config": {
"scopes": {
"bot": [
"app_mentions:read",
"channels:history",
"channels:read",
"chat:write",
"chat:write.public",
"commands",
"groups:history",
"groups:read",
"im:history",
"im:read",
"im:write",
"users:read"
]
}
},
"settings": {
"event_subscriptions": {
"bot_events": [
"app_mention",
"message.channels",
"message.groups",
"message.im"
]
},
"interactivity": {
"is_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": true,
"token_rotation_enabled": false
}
}
Socket Mode lets the bot receive slash commands (like /adstats) without needing a public server URL. The App-Level Token is required for this feature.
socket-tokenconnections:writeCopy this token immediately and save it securely. It starts with xapp- and you'll need to send it to Happy Robots.
xapp-)The bot needs to be added to each channel where you want reports.
Repeat this for each channel where you want the bot to post reports.
For each channel where you added the bot, get the Channel ID:
https://workspace.slack.com/archives/C01ABCD2EFGC01ABCD2EFG part is the Channel IDSend the following credentials securely to Happy Robots:
| What We Need | Where to Find It | Example |
|---|---|---|
| App-Level Token | Basic Information → App-Level Tokens | xapp-1-A0A9UB37... |
| Bot User OAuth Token | OAuth & Permissions page | xoxb-1234-5678-AbCdEf... |
| Signing Secret | Basic Information → App Credentials | a1b2c3d4e5f6... |
| Channel IDs | Right-click channel → Copy link | C01ABCD2EFG |
| Workspace Name | Your Slack URL | goodhelp.slack.com |
These credentials let the bot post to your Slack. We store them encrypted and never share them. The bot cannot read your messages—it can only post to channels where you've invited it. You can remove it anytime from Slack Admin → Manage Apps.
Connect your Reddit Ads account to enable automated reporting. We only request read permissions—we cannot modify your campaigns or access payment information.
Reddit has updated their API policies. Apps must be created through the Reddit Ads Manager portal—not the general reddit.com/prefs/apps page.
/account/
The URL shows the raw ID, but the API requires an a2_ prefix.
URL shows: ifb8gxsy3dm9
API format: a2_ifb8gxsy3dm9
| Field | Value |
|---|---|
| App name | GoodHelp Reporting (or any descriptive name) |
| Description | Optional - leave blank |
| About URL | Optional - leave blank |
| Redirect URI | https://oauth.pstmn.io/v1/callback |
This allows us to capture the authorization code without running a local server. It's a standard OAuth testing endpoint.
After creating the app, you'll see your credentials displayed:
Copy both values to a secure location. You'll need them for the next steps.
To connect the app to your Reddit account, you need to open a special authorization URL in your browser.
Replace YOUR_CLIENT_ID with your App ID from Step 4, then open this URL:
Example with a real Client ID:
Make sure the scope is adsread (no underscore). Using ads_read will cause an "invalid scope" error.
After opening the authorization URL:
The app will NOT be able to access your Reddit password or make changes to your campaigns. This is read-only access for reporting purposes.
After clicking Allow, you'll be redirected to Postman's callback page:
code= parametercode= and #_
Example URL:
The code in this example is: cnKE41SPRAc12n7jLb4U4R-hoqOqIw
| Credential | Where to Find It | Example Format |
|---|---|---|
| App ID (Client ID) | Developer Applications page | E8Xs2DrhjexOTeXHWX872A |
| Secret (Client Secret) | Developer Applications page | b6-W-T_oo3RKMJRKo5zUxaFlKJ6SQQ |
| Account ID | URL in Ads Manager (with a2_ prefix) |
a2_ifb8gxsy3dm9 |
| Authorization Code | Postman callback URL | cnKE41SPRAc12n7jLb4U4R-hoqOqIw |
Once we receive your credentials, we'll complete the setup and confirm when your Reddit Ads data is flowing into your dashboard.
"I can't find Developer Applications"
Make sure you're in the Reddit Ads Manager (ads.reddit.com), not regular Reddit. Look under Business Manager in the sidebar.
"reddit.com/prefs/apps is blocked"
This is expected. Reddit now requires apps to be created through the Ads Manager portal. Use the Developer Applications section in ads.reddit.com instead.
"Invalid scope error during authorization"
Contact us—we'll send you a corrected authorization link.
"Account not found" errors
Make sure your Account ID includes the a2_ prefix. Example: a2_ifb8gxsy3dm9 not just ifb8gxsy3dm9.