Security Policy

Effective Date: April 5, 2026 Last Updated: July 29, 2026 Version: 2.3


1. Overview

hiroi is operated by TrentApps LLC (d/b/a hiroi). We are committed to maintaining the security, availability, and confidentiality of the hiroi omni-channel AI agent platform and the data it processes. This includes account data, contact records, call transcripts, SMS content, email, and third-party integration data.

Our security controls are designed to align with SOC 2 Trust Service Criteria.

What "aligned" means, and what it does not. hiroi has not completed a SOC 2 Type I or Type II audit, and no SOC 2 report exists. We have not engaged a third party to perform a penetration test of the platform, and we do not hold ISO 27001, PCI-DSS, FedRAMP, or HIPAA certification. Where certifications are cited in this document, they belong to our infrastructure providers (Microsoft Azure, Stripe, Cloudflare) and cover their services, not ours. This page describes controls we actually operate; it is not an attestation by an independent auditor.

2. Infrastructure Security

2.1 Hosting

  • Containerized deployment using Docker on Azure Container Apps for isolation and reproducibility
  • Application runs behind Cloudflare CDN with TLS termination and DDoS protection
  • Network segmentation between application, database (Azure SQL Database), telephony (Azure Communication Services), and cache layers
  • Infrastructure hosted in Azure US East 2 region

2.2 Network Security

  • All external traffic encrypted with TLS 1.2 or higher (TLS 1.3 preferred)
  • Content Security Policy (CSP) headers enforced
  • HTTP Strict Transport Security (HSTS) enabled
  • Firewall rules restricting unnecessary inbound/outbound traffic
  • Cloudflare Web Application Firewall (WAF) for application-layer attack prevention

2.3 Database Security

  • Azure SQL Database with authentication required for all connections
  • Network access restricted by Azure SQL firewall rules to the application
  • Automated encrypted backups with point-in-time recovery
  • Connection string secrets stored in Azure Container Apps environment secrets, never in code

2.4 Telephony Security

  • Azure Communication Services (ACS) used for all voice calls, SMS, and email delivery
  • Inbound ACS Event Grid webhooks are authenticated with a shared secret compared in constant time, and fail closed if the secret is not configured on the server
  • The ACS media-streaming WebSocket and signed audio playback URLs are authenticated with HMAC signatures scoped to the individual call
  • Phone numbers provisioned and managed through ACS; not directly accessible to end users
  • Call audio is not recorded or stored by hiroi; transcripts are stored under the database's encryption at rest, with access restricted by organization membership

2.5 Content Safety

  • Azure AI Content Safety runs per-message analysis on all widget chat interactions before AI processing
  • Text is evaluated for hate, sexual content, self-harm, and violence severity
  • Jailbreak and prompt-injection detection via shield analysis
  • Content flagged above severity thresholds is blocked before reaching the AI model
  • Fail-open design: content safety outages do not block chat but are logged for review

2.6 Outbound Actions Security

  • All outbound HTTP integrations (event webhooks, AI-triggered actions, form submissions) are signed using HMAC-SHA256 (Stripe signing pattern, X-Hiroi-Signature: t=<ts>,v1=<hex>)
  • SSRF protection: outbound action URLs are resolved before the request is made and rejected if they point at private, loopback, link-local, or otherwise reserved address ranges; redirects are re-checked rather than followed blindly
  • All delivery attempts are logged for audit, including attempts blocked before they left our network

3. Application Security

3.1 Authentication

  • OAuth 2.0: Secure third-party authentication via Google, Apple, and Microsoft (Entra ID)
  • Passkeys (WebAuthn): Phishing-resistant passwordless sign-in, with origin validation and challenge timeouts
  • Two-factor (TOTP): Optional second factor; secrets encrypted at rest with Fernet using a per-user salt, with backup codes and lockout on repeated failures
  • Magic Links: Time-limited, single-use email authentication tokens, stored hashed
  • Sessions managed server-side with secure cookie attributes (HttpOnly, Secure, SameSite) and enforced expiry
  • Brute-force lockout on password sign-in and on the two-factor verification step

3.2 Authorization

  • Role-based access control (user, admin, organization member)
  • Resource-level authorization checks (IDOR prevention via JOIN queries requiring org membership)
  • API key scoping (widget-specific, non-transferable)
  • Organization-level data isolation: users can only access data belonging to their organization

3.3 Input Validation

  • Server-side validation on all inputs
  • Parameterized database queries (SQL injection prevention)
  • Content Security Policy headers (XSS prevention)
  • CSRF protection on all state-changing operations
  • Webhook payload signature verification before processing

3.4 Rate Limiting

  • Rate limiting applied across the API, with a default limit on every endpoint and tighter explicit limits on sensitive ones; backed by Redis in production so limits hold across application workers
  • Per-user and per-IP rate limits
  • Graduated limits for authentication endpoints
  • Widget chat and calling endpoints rate-limited per visitor/caller
  • Campaign dispatch rate limits to prevent carrier abuse

4. Data Security

4.1 Encryption

  • In Transit: TLS 1.2+ (TLS 1.3 preferred) for all communications
  • At Rest: AES-256 encryption for database storage (provided by Azure SQL Transparent Data Encryption)
  • Call Transcripts: Stored in Azure SQL under the same AES-256 Transparent Data Encryption as all other application data; call audio is not persisted
  • Secrets: API keys hashed with PBKDF2-SHA256 before storage (never reversible, never logged); OAuth, integration, and TOTP secrets encrypted at rest with Fernet (AES-128-CBC with HMAC authentication)
  • Backups: Database backups encrypted at rest using Azure-managed encryption keys

4.2 Access Controls

  • Principle of least privilege for all system components
  • No shared accounts or credentials
  • API keys generated with sufficient entropy
  • Server secrets never exposed to client-side code
  • Call transcripts accessible only to users with membership in the relevant organization

4.3 Data Classification

Classification Examples Handling
Confidential API keys, server secrets, OAuth tokens, ACS connection strings Encrypted/hashed, never logged
Private Email addresses, phone numbers, call transcripts, SMS content, conversation transcripts Access-controlled, retention limits enforced
Internal AI agent configurations, campaign settings, analytics (aggregate) Standard org-level access controls
Public Documentation, widget embed code, legal policies No restrictions

5. Widget Security

5.1 Authentication Modes

  • Domain Safelist: Origin header validation with exact domain matching
  • Session Signed: HMAC-SHA256 signed tokens with configurable TTL
  • Neither mode exposes API keys or secrets in the browser

5.2 Client-Side Security

  • No secrets embedded in widget JavaScript
  • Origin validation prevents cross-site misuse
  • Signed tokens are site-specific and expire

6. Telephony and Messaging Security

6.1 Call Webhook Validation

All inbound call events from Azure Communication Services are authenticated before any handler runs, using a shared secret supplied on the Event Grid subscription and compared in constant time. If the secret is not configured, the endpoint rejects every request rather than accepting unauthenticated events. Per-call callbacks additionally carry a call-scoped secret, and media-streaming and audio playback URLs are HMAC-signed.

6.2 SMS Security

  • A2P 10DLC registration is required for US SMS traffic; hiroi enforces registration requirements
  • SMS content is not logged in plaintext in application logs
  • Opt-out keywords (STOP, UNSUBSCRIBE) are processed automatically and irreversibly

6.3 Phone Number Security

  • Provisioned phone numbers are organization-scoped; numbers cannot be transferred between organizations without explicit action
  • Number release requires account confirmation

7. Third-Party Integration Security

  • OAuth tokens for connected accounts (Google, Apple, Microsoft) are stored encrypted and scoped to the minimum required permissions
  • Token refresh is handled server-side; access tokens are never sent to the client browser
  • Revoking hiroi's access via your account provider's settings immediately terminates the integration
  • Enterprise deployments use a single Azure AD app registration with admin-consented permissions, eliminating per-user prompts

8. Operational Security

8.1 Monitoring and Logging

  • Activity logging for user and AI agent actions, account and configuration changes, and administrative operations
  • Security event logging (authentication, authorization failures, unusual activity)
  • Telephony logs retained for compliance audit purposes
  • Activity logs are retained for 2 years and then permanently deleted by an automated job; where a log entry survives deletion of the account it relates to, it is retained without directly identifying personal data

8.2 Incident Response

We maintain an incident response process that includes:

  1. Detection: Automated monitoring and alerting for security anomalies
  2. Containment: Immediate isolation of affected systems or accounts
  3. Investigation: Root cause analysis and impact assessment
  4. Notification: Affected users notified within 72 hours of confirmed breach
  5. Remediation: Fix deployment and countermeasures
  6. Review: Post-incident review and process improvement

8.3 Vulnerability Management

  • Dependencies monitored for known vulnerabilities (automated scanning)
  • Security patches applied promptly, prioritized by severity
  • Responsible disclosure program for external researchers (see Section 12)
  • We do not currently commission third-party penetration tests and do not operate a paid bug bounty program

9. Data Retention and Disposal

Data is retained according to our Privacy Policy retention schedule. When data reaches end of retention:

  • Personal data is permanently deleted or anonymized (not merely archived)
  • Call transcripts are securely deleted from storage
  • Backup copies are removed within the backup rotation cycle
  • Deletion is logged in the audit trail

10. Business Continuity

  • Automated database backups with point-in-time recovery
  • Container-based deployment enables rapid recovery and rollback
  • Cloudflare CDN provides geographic redundancy for edge traffic
  • Documented recovery procedures for application and database restoration
  • Campaign state is durable: paused campaigns resume from the last completed step after recovery

11. Compliance

11.1 SOC 2 Alignment

hiroi has not undergone a SOC 2 audit and cannot provide a SOC 2 report. Our security controls are designed to align with the AICPA SOC 2 Trust Service Criteria, which we use as a control framework:

  • Security: Access controls, encryption, monitoring, vulnerability management
  • Availability: Incident response, automated backups, point-in-time recovery
  • Processing Integrity: Input validation, webhook authentication, error handling
  • Confidentiality: Data classification, encryption, access controls, confidentiality obligations on anyone with access
  • Privacy: Data minimization, retention limits, user rights, consent management

We will state plainly on this page if and when an independent audit is completed. Until then, treat "SOC 2-aligned" as a description of our own controls, not as third-party assurance.

11.2 GDPR Alignment

We implement measures to support GDPR compliance:

  • Data processing agreements with all sub-processors
  • Data subject rights (access, portability, erasure, restriction, objection)
  • Consent management and tracking (including call/SMS consent records)
  • Breach notification within 72 hours
  • Data protection impact assessments for high-risk processing

11.3 HIPAA

The hosted hiroi cloud is not offered as a HIPAA-compliant service, and we do not sign Business Associate Agreements for it. Do not use the hosted Service to transmit or store protected health information (PHI).

For customers who need to handle PHI:

  • Enterprise (self-hosted) deployments run entirely within the customer's own Azure tenant. The customer's own Azure BAA with Microsoft covers the underlying infrastructure (Azure SQL, Azure OpenAI, Blob Storage, Communication Services), and the customer remains the covered entity or business associate for the data in their tenant
  • Azure infrastructure is HIPAA eligible, and a BAA is available to the customer directly from Microsoft
  • A BAA with hiroi for an Enterprise engagement is considered case by case as part of contracting; contact enterprise@hiroi.ai to scope one. We do not represent that one is available by default

Azure AI Content Safety screens for hate, sexual, self-harm, and violent content and for prompt-injection attempts. It is not a PHI or PII detector and does not prevent health information from reaching an AI model. Enterprise deployments can additionally enable DLP redaction (Section 11.5), which is pattern-based and should not be relied on as a complete safeguard.

11.4 TCPA / CAN-SPAM Alignment

We implement technical safeguards to support customer compliance:

  • Automatic opt-out processing for SMS (STOP keywords)
  • Do-not-contact flags on contacts that cannot be overridden by campaigns
  • Unsubscribe link support in email campaigns
  • Campaign scheduling controls to prevent calls/SMS during restricted hours

These are technical safeguards that support your compliance. They do not make your use of the Service compliant, and hiroi does not scrub contact lists against the National Do Not Call Registry. Consent, DNC scrubbing, and disclosure obligations remain yours under the Terms of Service.

11.5 Enterprise Controls

The following are available in self-hosted Enterprise deployments only and are not part of the hosted cloud service:

  • DLP redaction — pattern-based detection and redaction of SSNs, payment card numbers, API keys, private keys, passwords, phone numbers, and email addresses from conversations, at three configurable sensitivity levels
  • Compliance archival — asynchronous archival of conversation transcripts to the customer's SharePoint or Azure Blob Storage for regulatory preservation
  • IP allowlisting — restricting organization access to approved network ranges
  • Session controls — configurable session lifetime and inactivity timeout
  • Configurable retention — retention periods set per data type by the customer
  • Azure AD SSO and SCIM 2.0 provisioning against the customer's directory

12. Reporting Vulnerabilities

If you discover a security vulnerability, please report it to:

Email: security@hiroi.ai

We appreciate responsible disclosure and aim to:

  • Acknowledge receipt within 48 hours
  • Provide an initial assessment within 5 business days
  • Keep you informed of remediation progress
  • Credit researchers who ask to be credited
  • Not take legal action against good-faith security researchers acting within responsible disclosure guidelines

These are targets we work to, not contractual commitments. We do not operate a paid bug bounty program and do not compensate reporters.

Out of scope: informational DNS and email hygiene findings (missing CAA, SPF strictness, DMARC policy), missing security headers without a working exploit, scanner output without a proof of concept, social engineering, physical attacks, denial of service, and issues in third-party services we use — please report those to the provider directly.

13. Contact

For security-related inquiries:

TrentApps LLC (d/b/a hiroi) — Security 117 S Lexington St, Ste 100 Harrisonville, MO 64701, United States Email: security@hiroi.ai

Cookie Preferences

We use essential cookies to make our service work. You can choose to enable optional cookies for a better experience. Learn more

Cookie Preferences

Essential

Required for the service to function

Always On

Analytics

Help us understand how the service is used