Spaces:
Sleeping
Download README.md from StrategyStack/README: direct link, hf CLI and curl.
- Browser
- Download file 9.06 kB
-
https://huggingface.co/spaces/StrategyStack/README/resolve/main/README.md
- Command line
-
hf download hf://spaces/StrategyStack/README/README.md
-
curl -L -o README.md https://huggingface.co/spaces/StrategyStack/README/resolve/main/README.md
A newer version of the Gradio SDK is available: 6.32.0
title: README
emoji: 🚀
colorFrom: blue
colorTo: purple
sdk: gradio
pinned: false
short_description: A simple Gradio app
hf_oauth: true
StrategyStack Recovery, Enrichment & Outreach Platform
Granular UI Features (Nov 2025)
New Compliance, Audit, Branching & Diagnostics Widgets
1. Consent/Event Audit Panel
Shows all consent events, opt-outs, and compliance flags per contact and batch.
- Backend mapping: Receives list of consent events (JSON, e.g. {contact_id, event_type, opt_out, compliance_flag}) per contact or batch.
- UI mapping: Gradio panel renders event history per contact, batch aggregation, flags out-of-policy events.
- State schema: See /docs/configs/compliance_schema.json.
2. Dynamic Cadence Branching Composer
Visual builder for editing & previewing cadence sequences (multi-step outreach flows with conditional logic)
- Backend mapping: Mirrored to cadence state JSON (see cadence_agent.py / docs/configs/cadence_tree.json)
- UI mapping: Interactive tabular/tree UI shows each step, transition, and condition (see new app.py logic).
- Inline code: Each logic widget/function takes the backend structure as argument.
3. Live Diagnostics Panel (Incidents/Health)
Shows real-time and historical such as error, warning, info events for cadence or batch operations.
- Backend mapping: List of incidents/events from backend diagnostics state (event objects: {timestamp, type, message, level})
- UI mapping: Gradio Markdown log renders type/level/message per event.
- Config: Event/incident schema in docs/configs/diagnostics_schema.json
4. Exportable Audit Trail (Compliance/Debug)
CSV/text export of event history (compliance and debug records)
- Backend mapping: Batch history as list of per-event dicts, same as consent_audit schema.
- UI mapping: Text/csv box (downloadable) shows organized history—maps to regulatory & support request export needs.
Usage & API Mapping
- All widgets assume backend compliance/cadence events via standardized JSON from respective APIs (see /api/diagnostics, /api/cadence, /api/compliance, etc).
- See app.py for inline documentation on each panel/component; argument signatures require the backend state JSON (typically list[dict]).
Inline Documentation Examples (app.py)
- Each widget (audit, diagnostics, branching, export) is documented inline for both UI and state/JSON structure.
- You can customize backend structure via docs/configs/ files and panel logic will adopt new schemas as format evolves.
Example Panel Usage
Example construction is provided in app.py showing default data structures and rendering each widget in a Gradio tab.
(legacy platform and API docs retained below)
API Rate Limits & Throttling
Overview
This platform integrates with multiple external APIs for B2B outreach automation. Each service enforces rate limits to prevent abuse and ensure service stability. Understanding these limits is critical for:
- Preventing service disruptions (429 errors, temporary blocks)
- Optimizing batch operations (cadence scheduling, bulk enrichment)
- Compliance monitoring (audit trail accuracy)
- Cost management (avoiding overage charges)
Rate Limit Reset Timing: Most APIs reset limits at midnight UTC daily, with some using rolling windows.
LinkedIn API Rate Limits
Connection & Messaging Limits:
- Connection Requests: 100-200 per week (varies by account reputation)
- New accounts: ~50-75/week
- Established accounts: ~100/week
- Trusted accounts (high SSI): up to 200/week
- Messages: 150 per day (premium accounts)
- Profile Views: 80/day (standard), up to 1,000/day (premium)
API Request Limits (Scale-Dependent):
- 1,000-5,000 members: 7,500 requests/day, 1,500 requests/hour
- 5,001-10,000 members: 15,000 requests/day, 15,000 requests/hour
- 10,001-20,000 members: 30,000 requests/day, 30,000 requests/hour
- Rate limit errors: HTTP 429 "Too Many Requests"
- Alert threshold: Email notification at 75% of quota
Best Practices:
- Implement exponential backoff (15-30 minute delays) when hitting limits
- Monitor
X-RateLimit-Remainingresponse headers - Limits reset at midnight UTC daily
Email API Rate Limits
SendGrid
- API Rate Limit: 600 requests/minute (varies by endpoint)
- Free Plan: 100 emails/day
- Paid Plans: Up to 1,500 emails/day, max 400 emails/hour
- Enterprise: 1.5M emails/month with dedicated IP
Mailgun
- API Rate Limit: 300 requests/minute
- Free Plan: 5,000 emails/month, 300 emails/day
- Paid Plans: 50,000-100,000 emails/month (Foundation/Growth/Scale)
- Throttling: Automatic rate limiting based on sender behavior
Phone/SMS API Rate Limits (Twilio)
- Outbound Calls: 1 call per second (CPS) per account
- SMS Messages: 1 message per second per phone number
- Conversation Limit: 30 outbound replies between two numbers in 30 seconds
- Error Code: 14107 when SMS rate limit exceeded
- Webhook Limits: Service-specific (see Twilio Verify documentation)
Important: The 500th user in a batch will receive their call/SMS after ~500 seconds due to 1 CPS limit.
Data Enrichment API Rate Limits
ZoomInfo
- Standard APIs: 25 requests/second (1,500 requests/minute)
- Scaling APIs: 33 requests/second
- Daily Limits:
- Pro Plan: ~1,000 API calls/day
- Enterprise Plan: up to 10,000 API calls/day
- Batch Enrichment: 100,000 records max per batch
- Pricing: Credit-based system (~$15,000/year for 5,000 credits)
Clearbit (Breeze Intelligence)
- Rate Limits: Not publicly specified (HubSpot integration)
- Batch Enrichment: Limited to 100,000 records at once
- Pricing: Credit-based, starts at $45-50/month (100 credits)
- Real-time Updates: API-first approach for live data
Hunter.io
- Domain Search & Email Finder: 15 requests/second, 500 requests/minute
- Email Verifier: 10 requests/second, 300 requests/minute
- Error Response: HTTP 403 when limit exceeded
- Plans:
- Free: Limited credits
- Growth: 10,000 credits/month
- Scale: 25,000 credits/month
Apollo.io
- Free Plan: 50 API calls/minute, 600 calls/day
- Paid Plans: 200 API calls/minute, 2,000 calls/day
- Bulk Enrichment: 1/10 of standard rate limit (but 10 inputs per call)
- Error: HTTP 429 after exceeding limit
CRM API Rate Limits (Salesforce)
- Daily Request Limit: 100,000 base requests/24 hours (Enterprise Edition)
- Plus 1,000 additional requests per user license
- Example: 50 users = 150,000 daily requests
- Concurrent Requests: Max 25 long-running requests (20+ seconds)
- Developer orgs: 5 concurrent requests
- API Timeout: Hard 10-minute maximum per call
- Bulk API: 15,000 batches/day, 10,000 records per batch
- Report API: 1,200 async requests/hour
- Measurement Window: Rolling 24-hour window (not calendar days)
Platform Implementation
Our Rate Limit Handling Strategy:
- Detection: Monitor response headers (
X-RateLimit-*, HTTP 429 status) - Exponential Backoff: 15-minute initial delay, doubling on repeated failures
- Circuit Breaker: Temporary pause (15-30 min) when threshold reached
- Queue Management: Batch operations respect per-service limits
- Alerting: Live Diagnostics panel logs rate limit events
Configuration Files:
- Rate limit configs:
/docs/configs/rate_limits.json - Throttling logic: See
cadence_agent.pybackoff implementation - Monitoring: Live Diagnostics Panel tracks limit-related warnings
Example from Live Diagnostics:
[2025-11-06T06:33:00Z] warning: Rate limit reached for LinkedIn API;
implementing exponential backoff for 15 minutes
Monitoring & Alerts
Dashboard Integration:
- Live Diagnostics Panel: Real-time rate limit warnings
- Audit Trail Export: Historical rate limit incidents (CSV export)
- Compliance Tracking: Flags batches affected by rate limiting
Recommended Actions:
- Review Live Diagnostics panel regularly for rate limit patterns
- Adjust batch sizes and cadence timing based on observed limits
- Consider upgrading API plans if consistently hitting free tier limits
- Implement staggered scheduling to distribute load throughout the day
Additional Resources
- LinkedIn API Documentation: Microsoft Learn - Rate Limits
- Twilio Rate Limits: Understanding Twilio Rate Limits
- Salesforce API Limits: API Request Limits and Allocations
- Hunter.io API: Rate Limits Documentation
- Apollo.io API: View API Usage Stats