Security
How Pulsido protects your company's data, from encryption and hosting to who can see results and feedback.
People only answer honestly when they trust where their answers go. These are the measures we take to protect your company's data. They're also the technical and organizational measures referred to in our Data Processing Addendum.
Confidentiality by design
- Pseudonymous answers. Pulse answers and confidential feedback are stored against a keyed pseudonym (HMAC-SHA256 with a server secret), not a user id. Pulse answers keep the date only, never the time.
- Minimum group size. Pulse scores, eNPS, and anonymous survey results only appear when three or more people are behind them. Anonymous survey answers are held back until three exist, so they can't be worked out from totals.
- Small teams protected. Confidential feedback from a team of fewer than five people skips that team's managers and goes to owners and executives, with no team named.
- Separation of duties. Admins configure Pulsido but can't see results or feedback. Only owners can grant the Executive role, or any custom role that includes results or feedback.
Hosting and infrastructure
- Cloudflare runs the Pulsido application, file storage, caches, queues, and email sending on its global network, with built-in DDoS protection.
- Neon hosts the Postgres database on Amazon Web Services in Singapore (ap-southeast-1). The application reaches it through Cloudflare Hyperdrive over TLS.
- Our sub-processors and their locations are listed on the Sub-processors page.
Encryption
- In transit: every connection uses HTTPS (TLS), including our connections to the database and to connected services.
- At rest: the database and stored files are encrypted at rest by our providers (AES-256).
- Secrets: tokens for connected services (Slack, Microsoft Teams, Merge, Tremendous) are encrypted again with AES-256-GCM before they're stored. Passwords are stored only as salted one-way hashes.
Access and authentication
- People sign in with email and password, or with Google, Microsoft, or Slack. Sign-in attempts are rate-limited.
- Permissions follow roles (owner, admin, member, executive, team manager, and custom roles), and every request is checked on the server, not just hidden in the interface.
- Access to production systems is limited to the people who run Pulsido, and used only to operate and support the Services.
Payments
Card payments are handled by Paddle, our merchant of record, which is PCI DSS compliant. Card details never reach Pulsido's servers. Pulsido never holds reward money: gift cards are ordered through each company's own Tremendous account.
Reliability and backups
- The database is continuously backed up with point-in-time recovery by Neon.
- Background work, such as Slack posts and notifications, runs through a queue that retries failures, so a temporary outage doesn't lose messages.
- Database migrations run as part of every deploy, so the code and the database never drift apart.
Development practices
- Every change is type-checked and built automatically before it can ship. Secrets live in Cloudflare's secret store, never in the code.
- Dependencies are pinned in a lockfile that's checked against supply-chain policies on every install.
Incidents
If we learn of a security incident affecting your company's personal data, we'll tell your company's owner without undue delay, and within 72 hours of becoming aware of it, with what we know and what we're doing about it.
Certifications
Pulsido doesn't have a SOC 2 or ISO 27001 certification yet. Our infrastructure providers, Cloudflare, Neon, and Amazon Web Services, hold their own SOC 2 and ISO 27001 certifications. We're happy to answer your security questionnaire.
Report a vulnerability
If you find a security problem, please email privacy@pulsido.com with "Security" in the subject. Give us a reasonable time to fix it before telling anyone else, and don't access other people's data or disrupt the service while testing. We'll reply within three business days and keep you updated.