Skip to content
TWINJAM

Security & privacy

TWINJAM reads what it needs, keeps almost nothing, and never trains on it.

Read-only connectors, admin-chosen channels, in-memory processing and zero-retention AI. Built for agencies that answer to their clients' security teams.

Security posture

  • SOC 2 Type IICurrent
  • Last penetration testAug 2026
  • Open critical findings0
  • Model training on customer dataNever
  • Non-flagged messages stored0
  • Data regionsUS · EU · India

Architecture

How a client message moves through TWINJAM.

Events enter through read-only OAuth, are filtered by your allow-list, evaluated in memory, and either discarded or stored as an encrypted excerpt your PM can act on.

TWINJAM encrypted OAuth connector and zero-retention data flowAgency tools connect through read-only OAuth over TLS 1.3 to a connector edge that verifies signatures and drops non-allow-listed channels. Messages are processed in memory with PII redaction and compared with SOW rules, using zero-retention LLM inference. Non-flagged bodies are discarded; flagged excerpts are stored encrypted with AES-256 and shown in a private PM feed, and change orders are sent only after PM approval.YOUR AGENCY'S TOOLSSlackMicrosoft TeamsJira CloudLinearGitHub AppOAuth 2.0, least-privilege scopesTLS 1.3 on every hopTWINJAM REGION: US, EU OR INDIAConnector edgeSignature verifyChannel allow-listScope checkEphemeral processingIn memory onlyPII redactionSOW rule matchEncrypted flag storeAES-256, tenant KMS keyExcerpt, max 500 charsClause ID, permalinkDiscardedNon-flagged bodiesDMs and otherchannels droppedLLM inferenceZero retention, no trainingRedacted, minimised inputAnthropic / OpenAI, enterprise ZDRPrivate PM feed#pm-scope-alertsApprove, dismissor in scopeChange orderAfter PM approvalEncrypted in transit (TLS 1.3)External call, zero data retentionEncrypted at rest (AES-256)
Encrypted OAuth connector and zero-retention data flow. On small screens, scroll the diagram sideways.

Least privilege

Read-only OAuth scopes, connector by connector.

Write access exists in exactly two places: alerts to your private PM channel, and signature envelopes a PM has approved.

ConnectorScopes requestedAccessWrites
Slack logoSlackchannels:history, groups:history (allow-listed channels only), channels:read, users:readReadchat:write, only to your private PM alert channel
Microsoft Teams logoMicrosoft TeamsChannelMessage.Read.Group (resource-specific consent), Team.ReadBasic.AllReadAdaptive Card alerts to a private PM channel
Jira Cloud logoJira Cloudread:jira-work, read:jira-user, offline_accessReadNone
Linear logoLinearreadReadNone
GitHub logoGitHubGitHub App: pull requests, issues, metadata (read). Contents: no accessReadOptional check run status
Harvest logoHarvestTime entries and projects (read)ReadNone
DocuSign logoDocuSignsignature, impersonation (envelope creation)WriteEnvelopes created only after PM approval

Data retention

What is processed, what is stored, and what never is.

The default is to forget. We keep only what a PM needs as evidence, for as long as the project needs it.

DataProcessedStoredNever stored
Signed SOWs and MSAsEncrypted, until you delete themRetained as described
Extracted boundary rulesLife of the contractRetained as described
Non-flagged Slack and Teams messagesNever. One-way hash kept 30 days for de-duplicationNever stored
Flagged message excerpts (max 500 chars)Encrypted, project life plus 90 daysRetained as described
Jira and Linear ticket descriptionsNever. Titles, status and estimates onlyNever stored
GitHub source codeNever. File paths and diff stats onlyNever stored
Direct messages and non-selected channelsNever receivedNever stored
Model training dataNever. Zero training on customer contentNever stored

Analytics never include Slack messages, Jira descriptions, client names or SOW text. Full schedule in the Privacy Policy.

Channel allow-listing

Your admin chooses the channels. Everything else is dropped at the door.

TWINJAM only evaluates the shared client channels an admin turns on. Internal channels, company channels and every direct message are discarded at the connector edge, before they reach a queue, a model or a log. Toggle the channels to see what reaches processing.

  • Clients never receive an automated message
  • Alerts post only to your private PM channel
  • Allow-list changes are recorded in the admin audit log

Slack · Monitored channels

Admin only
  • client-halvorsen-freightShared client channel
  • client-mapleview-healthShared client channel
  • hfx-app-devInternal delivery channel
  • generalCompany channel
  • randomCompany channel
  • Direct messages and group DMsNever available to TWINJAM

1,760

Events, last hour

316

Processed

1,444

Dropped at edge

Controls and compliance

The commitments behind the architecture.

SOC 2 Type II

Annual examination of Security, Availability and Confidentiality controls. Report shared under NDA.

AES-256 at rest

Per-tenant data keys in AWS KMS, rotated annually. Connector tokens use a separate key hierarchy.

TLS 1.3 in transit

Every external hop, with HSTS preload on twinjam.com.

Zero model training

Customer content never trains, fine-tunes or evaluates any model. Inference runs under zero data retention agreements.

US, EU and India residency

AWS N. Virginia, Frankfurt or Mumbai, with backups in a second region in the same jurisdiction.

GDPR and DPDP Act 2023

DPA with Standard Contractual Clauses, and a Grievance Officer in Mumbai.

Penetration testing

Annual test by a CREST-accredited firm. Latest: August 2026, no open critical or high findings.

Responsible disclosure

Found a vulnerability? We want to hear from you.

  1. 01ReportEmail security@twinjam.com with steps to reproduce. For sensitive issues, ask for an encrypted channel in your first message and we will set one up.
  2. 02Acknowledge within 24 hoursA security engineer confirms receipt and gives you a tracking reference.
  3. 03Triage within 2 business daysWe confirm severity and share a remediation timeline: 7 days for critical, 30 days for high.
  4. 04Safe harborWe will not pursue legal action for good-faith research that avoids privacy violations, data destruction and service disruption, and that stays within your own test workspace.
  5. 05RecognitionWith your permission, we credit researchers on our security acknowledgements page once the fix ships.

FAQ

Questions security teams ask us.

Security architecture document
Subprocessors

No. An admin selects the shared client channels to monitor. Events from any other channel, and all direct messages, are dropped at the connector edge before they reach a processing queue.

Never. TWINJAM does not train, fine-tune or evaluate models on customer content. Our inference providers, Anthropic and OpenAI, process requests under zero data retention agreements, and inputs are redacted and minimised first.

Nothing but a one-way hash and timestamp, kept for 30 days to avoid evaluating the same message twice. The message text itself is processed in memory and discarded.

In the region you choose: United States (AWS N. Virginia), European Union (AWS Frankfurt) or India (AWS Mumbai). Backups stay in a second region within the same jurisdiction.

Yes. Email security@twinjam.com and we will share the report and our latest penetration test summary under NDA, usually within one business day.

Email security@twinjam.com or follow the instructions in /.well-known/security.txt. We acknowledge within 24 hours, triage within 2 business days and will not pursue legal action against good-faith research that follows our disclosure policy.

Bring your security questionnaire. We will bring the answers.

Scale plan customers get a security review call, our SOC 2 Type II report and a signed DPA before the trial starts.