Integration Troubleshooting
Common issues and solutions when setting up integrations with Aim.
General Troubleshooting Steps
Before diving into integration-specific issues, try these general troubleshooting steps:
1. Check Integration Status
- Go to Settings → Integrations
- Find your integration
- Check the status indicator:
- 🟢 Connected - Working normally
- 🟡 Warning - Partial issues, some data may not sync
- 🔴 Error - Connection failed, needs attention
2. Review Sync Logs
- Click on your integration name
- Go to Sync History tab
- Review recent sync attempts
- Look for error messages or patterns
3. Test Connection
- Open integration settings
- Click Test Connection
- Review detailed error message if test fails
4. Verify Credentials
- Check that API keys/tokens haven’t expired
- Ensure passwords haven’t changed
- Verify service account keys are still valid
- Confirm OAuth tokens haven’t been revoked
5. Check Permissions
- Ensure your account still has necessary permissions in the source system
- Verify service accounts still have required roles
- Check that app permissions haven’t been revoked
Google Analytics
Permission Denied Error
Error: 403 Forbidden or “Permission denied”
Causes:
- Service account not added to GA4 property
- Incorrect email address used
- Viewer role not assigned
Solutions:
1. Verify Service Account Email
Open your JSON key file and find the client_email:
{
"client_email": "your-service-account@project-id.iam.gserviceaccount.com"
}2. Check GA4 Access
- Go to GA4 Admin → Property Access Management
- Search for your service account email
- Verify it’s listed with “Viewer” role
- If not found, add it again
3. Wait for Propagation
After adding the service account, wait 5-10 minutes for permissions to propagate, then test again.
Organization Policy Blocks Key Creation
See the detailed troubleshooting section in the Google Analytics integration guide.
Invalid Property ID
Error: “Property not found” or 404
Solution:
- Go to GA4 Admin → Property Settings
- Copy the Property ID (numeric value at top)
- Update your Aim integration with the correct ID
No Data After Sync
Causes:
- GA4 property has no data
- Date range issue
- Metrics not properly configured
Solutions:
- Verify data exists in GA4 for the time period you’re querying
- Check Aim metric date ranges (default is last 30 days)
- Try manual refresh: Systems → Connection → Sync Now
Salesforce
Authentication Failed
Error: “Invalid username, password, security token, or user locked out”
Solutions:
-
Check credentials:
- Username must be complete email address
- Password must be current
- Security token must be appended to password
-
Reset security token:
- Log into Salesforce
- Go to Settings → Reset My Security Token
- Check your email for the new token
- Update Aim with Password + Token
-
Check IP restrictions:
- Salesforce may block API access from new IPs
- Add Aim’s IP addresses to trusted list
- Or use OAuth instead of username/password
API Limit Exceeded
Error: “REQUEST_LIMIT_EXCEEDED”
Causes:
- Too many API calls within 24-hour period
- Multiple integrations using same Salesforce org
Solutions:
- Reduce sync frequency (daily instead of hourly)
- Limit number of objects being synced
- Upgrade Salesforce API limits
- Coordinate with other tools using the API
Snowflake
Network Error / Connection Timeout
Error: “Unable to connect to Snowflake” or timeout errors
Causes:
- Firewall blocking connection
- Incorrect account identifier
- Network policy restrictions
Solutions:
-
Verify account identifier:
- Format:
<account>.<region>.snowflakecomputing.com - Example:
xy12345.us-east-1.snowflakecomputing.com - Check in Snowflake web UI URL
- Format:
-
Check network policy:
SHOW NETWORK POLICIES;Add Aim’s IP addresses if restricted.
-
Test connectivity:
telnet <account>.snowflakecomputing.com 443
Authentication Failed
Error: “Incorrect username or password” or “Invalid credentials”
Solutions:
-
Verify credentials:
- Username is case-insensitive
- Password is case-sensitive
- Check for extra spaces
-
Check user permissions:
SHOW GRANTS TO USER <username>;User needs
USAGEon warehouse and database,SELECTon schemas/tables. -
Reset password if needed:
ALTER USER <username> SET PASSWORD='<new_password>';
Stripe
Invalid API Key
Error: “Invalid API Key provided”
Solutions:
-
Check key format:
- Must start with
sk_live_(production) orsk_test_(test mode) - Ensure entire key was copied (no spaces or truncation)
- Must start with
-
Verify key is active:
- Go to Stripe Dashboard → Developers → API Keys
- Ensure key hasn’t been revoked
- Generate new key if needed
-
Check mode:
- Test mode keys don’t work with live data
- Use live keys for production data
Rate Limit Exceeded
Error: 429 Too Many Requests
Solutions:
- Reduce sync frequency
- Limit date ranges for historical data imports
- Contact Aim support to optimize queries
HubSpot
OAuth Token Expired
Error: “Token has been revoked” or “Token expired”
Solutions:
-
Reauthorize:
- Go to Settings → Integrations → HubSpot
- Click Reconnect
- Complete OAuth flow again
-
Check app permissions:
- Verify HubSpot app is still installed
- Go to HubSpot Settings → Integrations → Connected Apps
- Ensure Aim app is listed and active
Missing Scopes
Error: “This access token doesn’t have the required scopes”
Solution:
- Reauthorize the connection (will request updated scopes)
- If error persists, contact Aim support (we may have added new features)
Slack
Webhook Not Receiving Messages
Causes:
- Webhook URL changed
- Channel was deleted
- App uninstalled from workspace
Solutions:
-
Test webhook:
curl -X POST -H 'Content-type: application/json' \ --data '{"text":"Test from Aim"}' \ <YOUR_WEBHOOK_URL> -
Regenerate webhook:
- Slack workspace settings → Apps → Incoming Webhooks
- Create new webhook
- Update in Aim
-
Check channel:
- Verify channel still exists
- Ensure app is added to channel:
/invite @Aim
Database Connections (PostgreSQL, MySQL)
Connection Refused
Error: “Connection refused” or “Could not connect to server”
Causes:
- Database not accessible from internet
- Firewall blocking connection
- Wrong host/port
Solutions:
-
Check host and port:
- Default PostgreSQL port: 5432
- Default MySQL port: 3306
- Verify in your database admin panel
-
Whitelist Aim IPs:
- Add Aim’s IP addresses to your firewall/security group
- Contact Aim support for current IP list
-
Test connection:
# PostgreSQL psql -h <host> -p <port> -U <username> -d <database> # MySQL mysql -h <host> -P <port> -u <username> -p <database>
SSL/TLS Errors
Error: “SSL connection required” or certificate errors
Solutions:
- Enable SSL in Aim connection settings
- For self-signed certificates:
- Contact Aim support to upload your CA certificate
- Verify SSL is enabled on database server
Common Error Messages
”Rate limit exceeded”
Meaning: Too many API requests in a short period
Solutions:
- Reduce sync frequency
- Limit number of metrics
- Wait and retry later
- Upgrade to higher tier (if source system has paid tiers)
“Unauthorized” or “401 Error”
Meaning: Authentication failed
Solutions:
- Verify credentials are correct
- Check if credentials have expired
- Ensure API keys/tokens haven’t been revoked
- Re-authenticate OAuth connections
”Forbidden” or “403 Error”
Meaning: Authenticated but don’t have permission
Solutions:
- Check user permissions in source system
- Ensure required roles are assigned
- Verify service account has necessary access
- Check IP whitelist if applicable
”Not Found” or “404 Error”
Meaning: Resource doesn’t exist
Solutions:
- Verify IDs are correct (project ID, account ID, etc.)
- Check that resources haven’t been deleted
- Ensure you’re querying the right environment (prod vs test)
“Timeout” or “Gateway Timeout”
Meaning: Request took too long
Solutions:
- Reduce date ranges
- Limit number of metrics/objects
- Check source system status
- Try again during off-peak hours
Getting Help
Before Contacting Support
Gather this information:
- Integration name (e.g., “Google Analytics”, “Salesforce”)
- Connection name in Aim
- Exact error message
- Steps to reproduce
- When the issue started
- Recent changes (if any)
Check System Status
- Visit status.aimmetrics.ai for service status
- Check source system status pages:
Contact Support
- Email: support@aimmetrics.ai
- In-app chat: Click the chat icon in bottom right
- Community: Aim Community Slack
Include all the information you gathered above for fastest resolution.
Emergency Issues
For critical production issues:
- Email: urgent@aimmetrics.ai
- Include “URGENT” in subject line
- Describe business impact
Preventive Maintenance
Best Practices
-
Monitor regularly:
- Check integration status weekly
- Review sync logs for warnings
- Set up sync failure alerts
-
Keep credentials fresh:
- Rotate API keys every 90 days
- Update passwords proactively
- Refresh OAuth tokens before expiration
-
Document changes:
- Note when you modify integrations
- Keep track of credential updates
- Document any custom configurations
-
Test after changes:
- Test connections after updating source systems
- Verify data after major source system upgrades
- Re-test after changing permissions
-
Stay informed:
- Subscribe to source system status updates
- Follow Aim release notes
- Watch for deprecation notices