{"id":"a7a3536b-7a4f-4da8-9ee5-4522755ed09c","slug":"crewai-eaisoa2ai-outreach-iq","name":"outreach-iq","description":"Multi-agent AI customer outreach pipeline — CrewAI + typed Pydantic contracts, pluggable voice/email providers, OpenTelemetry tracing, content guardrails.","canonicalUrl":"https://www.xpersona.co/skill/crewai-eaisoa2ai-outreach-iq","sourceUrl":"https://github.com/eaisoa2ai/outreach-iq","homepage":null,"source":"GITHUB_REPOS","vendor":{"slug":"eaisoa2ai","label":"Eaisoa2ai","url":"https://github.com/eaisoa2ai/outreach-iq"},"protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":null,"freshnessAt":"2026-10-09T11:47:33.023Z","freshnessLabel":"Oct 9, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Oct 9, 2026"},{"label":"Vendor","value":"Eaisoa2ai"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"Unpublished"}],"factsPreview":[{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Eaisoa2ai","href":"https://github.com/eaisoa2ai/outreach-iq","sourceUrl":"https://github.com/eaisoa2ai/outreach-iq","sourceType":"profile","confidence":"medium","observedAt":"2026-10-09T11:47:33.028Z","isPublic":true},{"factKey":"protocols","category":"compatibility","label":"Protocol compatibility","value":"OpenClaw","href":"https://www.xpersona.co/api/v1/agents/crewai-eaisoa2ai-outreach-iq/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-eaisoa2ai-outreach-iq/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-10-09T11:47:33.028Z","isPublic":true},{"factKey":"traction","category":"adoption","label":"Adoption signal","value":"1 GitHub stars","href":"https://github.com/eaisoa2ai/outreach-iq","sourceUrl":"https://github.com/eaisoa2ai/outreach-iq","sourceType":"profile","confidence":"medium","observedAt":"2026-10-09T11:47:33.028Z","isPublic":true},{"factKey":"docs_crawl","category":"integration","label":"Crawlable docs","value":"6 indexed pages on the official domain","href":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceUrl":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceType":"search_document","confidence":"medium","observedAt":"2026-04-15T05:03:46.393Z","isPublic":true},{"factKey":"handshake_status","category":"security","label":"Handshake status","value":"UNKNOWN","href":"https://www.xpersona.co/api/v1/agents/crewai-eaisoa2ai-outreach-iq/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-eaisoa2ai-outreach-iq/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["1 GitHub stars","Trust evidence available"],"agentCard":{"name":"outreach-iq","description":"Multi-agent AI customer outreach pipeline — CrewAI + typed Pydantic contracts, pluggable voice/email providers, OpenTelemetry tracing, content guardrails.","source":"GITHUB_REPOS","sourceId":"crewai:1376653183","repository":"https://github.com/eaisoa2ai/outreach-iq","documentation":"https://www.xpersona.co/skill/crewai-eaisoa2ai-outreach-iq/agent/crewai-eaisoa2ai-outreach-iq","protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"languages":["python"],"install":{"command":"git clone https://github.com/eaisoa2ai/outreach-iq.git","ecosystem":"git"},"examples":[{"kind":"example","language":"mermaid","snippet":"flowchart LR\n    subgraph Data\n        DB[(SQLite: profiles, engagement, feedback)]\n    end\n\n    DB -->|CustomerContext| Insight[Insight Agent<br/>generates CallGuidance]\n    Insight --> Call[Call Agent<br/>initiates call via VoiceProvider]\n    Call --> Decision[Decision Agent<br/>polls outcome, reads transcript]\n    Decision --> Email[Email Agent<br/>drafts + sends via EmailProvider]\n    Email --> Routing[[evaluate_routing]]\n    Routing -->|flagged| Review[Human Review Queue]\n    Routing -->|clear| Done[Campaign Complete]\n\n    Routing -.-> Audit[(audit_trail.jsonl)]\n\n    subgraph Providers\n        VoiceProvider -.mock/real.-> Mock1[MockVoiceProvider]\n        VoiceProvider -.mock/real.-> Real1[ElevenLabsVoiceProvider]\n        EmailProvider -.mock/real.-> Mock2[MockEmailProvider]\n        EmailProvider -.mock/real.-> Real2[GmailEmailProvider]\n    end"},{"kind":"example","language":"mermaid","snippet":"sequenceDiagram\n    participant CLI as CLI / Gradio\n    participant Repo as CustomerRepository\n    participant Insight as Insight Agent\n    participant Call as Call Agent\n    participant Voice as VoiceProvider\n    participant Decision as Decision Agent\n    participant Email as Email Agent\n    participant Mail as EmailProvider\n    participant Route as evaluate_routing()\n    participant Audit as audit_trail.jsonl\n\n    CLI->>Repo: get_context(customer_id, days_back)\n    Repo-->>CLI: CustomerContext\n    CLI->>Insight: CustomerContext\n    Insight-->>Call: CallGuidance (via CrewAI task context)\n    Call->>Voice: initiate_call(name, phone, guidance)\n    Voice-->>Call: conversation_id, status\n    Call-->>Decision: CallInitiationResult\n    Decision->>Voice: wait_for_terminal_status(conversation_id)\n    Voice-->>Decision: outcome (completed/failed/did_not_pick/error)\n    Decision->>Voice: get_transcript(conversation_id)  [if completed]\n    Decision-->>Email: CallAnalysis\n    Email->>Mail: send_email(to, subject, html_body)\n    Mail-->>Email: status, message_id\n    Email-->>CLI: EmailOutcome\n    CLI->>Route: evaluate_routing(CampaignState, thresholds)\n    Route-->>CLI: requires_human_review, review_reasons\n    CLI->>Audit: write_audit_entry(...)\n    CLI->>Repo: CampaignRepository.save(state)"}]}}