Spaces:
Sleeping
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
9.06 kB
| 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-Remaining` response 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:** | |
| 1. **Detection:** Monitor response headers (`X-RateLimit-*`, HTTP 429 status) | |
| 2. **Exponential Backoff:** 15-minute initial delay, doubling on repeated failures | |
| 3. **Circuit Breaker:** Temporary pause (15-30 min) when threshold reached | |
| 4. **Queue Management:** Batch operations respect per-service limits | |
| 5. **Alerting:** Live Diagnostics panel logs rate limit events | |
| **Configuration Files:** | |
| - Rate limit configs: `/docs/configs/rate_limits.json` | |
| - Throttling logic: See `cadence_agent.py` backoff 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](https://learn.microsoft.com/en-us/linkedin/shared/api-guide/concepts/rate-limits) | |
| - Twilio Rate Limits: [Understanding Twilio Rate Limits](https://help.twilio.com/articles/115002943027) | |
| - Salesforce API Limits: [API Request Limits and Allocations](https://developer.salesforce.com/docs/atlas.en-us.salesforce_app_limits_cheatsheet.meta) | |
| - Hunter.io API: [Rate Limits Documentation](https://help.hunter.io/en/articles/1970956-hunter-api) | |
| - Apollo.io API: [View API Usage Stats](https://docs.apollo.io/reference/view-api-usage-stats) | |