On this page
This Privacy Policy explains how DeadHook processes personal data when you visit the website, create an account, use the dashboard or API, receive webhook deliveries, contact support, or subscribe to Pro. It describes the current implementation and the providers used to operate the Service. Pro is planned but not yet available for purchase.
1. Scope and operator #
DeadHook is an independent software service operated by Jois Andresky, an individual sole proprietor based in Indonesia. References to “DeadHook,” “we,” “us,” or “our” mean that operator.
This policy covers the DeadHook website, dashboard, management API, ingestion and delivery service, support workflows, and billing integration. It does not cover third-party websites, including Paddle's checkout, buyer portal, or privacy practices.
2. Controller and processor roles #
For account, organization, support, and billing-relationship data, DeadHook acts as the data controller (or equivalent responsible operator). For webhook payloads and delivery content that a customer instructs us to receive, store, and forward, the customer is normally the controller and DeadHook acts as a processor or service provider.
Customers are responsible for ensuring they may send their webhook data to DeadHook, for providing notices to their own users, and for configuring Destinations that are authorized to receive the data. Where a separate data processing agreement is required, the parties should execute one before processing.
3. Data we process #
The current Service processes the following categories of data:
- Account identity and authentication: email address, display name, password hash (not the plaintext password), email-verification status and token hash, session token hash, CSRF token, session expiry, and account timestamps.
- GitHub authentication data (only if you choose GitHub sign-in): GitHub numeric user ID, username, display name, avatar URL, verified primary email address, and the time the identity was linked. We do not retain GitHub access tokens after authentication and do not request repository, organization, or workflow data.
- Organization and membership data: organization name and slug, project name and slug, member roles, invitation email address, invitation role, invitation status, and membership timestamps.
- Source and Destination configuration: Source names, public identifiers, authentication mode, encrypted or hashed Source secrets, Destination URLs, Destination signing-secret material, enabled/archive state, timeout, and response-capture setting.
- Webhook Events: raw request body, body hash, content type, upstream Event identifier, limited request metadata (authentication mode, content type, user agent, and Shopify topic when present), receipt and expiry timestamps, Source and Project identifiers, and delivery status.
- Deliveries and attempts: Destination, job and delivery identifiers, attempt counts, HTTP status, result classification, error code, timing, retry schedule, stop state, and audit metadata.
- Optional response snippets: when a Destination owner enables response capture, up to 4 KiB of textual or JSON response body, content type, capture state, and seven-day expiry. Headers, successful 2xx bodies, and binary bodies are not retained as snippets.
- Support data: ticket subject, category, description, conversation messages, customer name and email, organization name, status, timestamps, and support audit records. Support notification emails intentionally omit the ticket or reply body.
- Billing and subscription data: plan, subscription status, Paddle customer and subscription identifiers, Paddle price identifier, current period end, scheduled cancellation, transaction identifiers used for checkout correlation, and Paddle webhook event identifiers and payload hashes. DeadHook does not store full payment-card data; Paddle processes payment details.
- Operational and security data: request identifiers, request paths, HTTP statuses, timings, application errors, rate-limit counters, and service logs. Technical metadata such as IP address and user agent may be processed transiently for security, rate limiting, and abuse prevention.
We do not currently use third-party advertising, analytics, or behavioral-tracking SDKs. We do not sell personal data.
4. Why we process data #
We process data to:
- create and authenticate accounts and organizations;
- operate Projects, Sources, Destinations, ingestion, delivery, retries, DLQ, replay, archive, and response inspection;
- enforce plan limits, usage quotas, security controls, and tenant isolation;
- send verification, invitation, and support emails;
- manage subscriptions and reconcile Paddle webhook events;
- provide support, investigate incidents, and maintain audit records;
- protect the Service, prevent abuse, and comply with legal obligations; and
- communicate service or policy changes.
Where data-protection law requires a legal basis, we rely on performance of a contract, our legitimate interests in operating and securing the Service, compliance with legal obligations, and consent where we specifically request it. You may withdraw consent where consent is the applicable basis, without affecting processing already carried out.
5. Cookies and local storage #
The current Service uses the following browser storage:
- Session cookie (
wr_session): an opaque session identifier, HttpOnly, SameSite=Lax, Secure when served over HTTPS, with a default lifetime of 12 hours. It is essential for authentication. - Sidebar preference (
sidebar_state): a small UI preference cookie remembering whether the dashboard sidebar is open, with a seven-day lifetime. - Local storage (
deadhook.active-org,deadhook.active-project): remembers the selected Organization and Project. It does not contain a session token. - Session storage (
deadhook.events.return): a return path used when navigating from Event Detail back to Event Explorer.
The session mechanism is required for secure authentication and cannot be disabled while using the authenticated dashboard. You can clear cookies and local storage through your browser, though doing so will sign you out and reset preferences.
Paddle Checkout and the Paddle buyer portal are operated by Paddle and may use Paddle's own cookies, scripts, and local storage. Their processing is governed by Paddle's Privacy Notice (opens Paddle’s website).
6. Service providers and sharing #
We share data only as needed to operate the Service:
- Paddle — planned merchant of record for future Pro transactions, payment processing, tax, subscription management, buyer portal, refunds, and related buyer support. No live Paddle checkout or paid transactions are enabled today. When enabled, Paddle will process payment details under its own privacy notice.
- Onidel — production application and database hosting in Singapore.
- Third-party encrypted backup storage — S3-compatible storage used for encrypted database backups and recovery.
- Resend — transactional email delivery for account verification, invitations, and support notifications.
- GitHub — authentication provider when you choose GitHub sign-in. GitHub processes your authorization and profile data under its own privacy terms. We receive only the identity fields described in section 3 and do not retain the access token.
- Professional advisers, authorities, or successors — where required by law, to protect rights and safety, or in connection with a bona fide reorganization or transfer, subject to appropriate confidentiality.
We do not authorize service providers to use customer data for their own advertising. Their processing is limited to the services they provide to DeadHook, subject to their service terms and applicable law.
7. International transfers #
DeadHook is based in Indonesia. Its production application and database are hosted by Onidel in Singapore. Encrypted backups are stored with a third-party S3-compatible storage provider, and transactional email is delivered through Resend. Future payment processing will be provided by Paddle. GitHub, when you choose GitHub sign-in, processes authentication data under its own privacy terms and may process it in the United States or other locations where GitHub operates. Those providers may process data in Singapore, Indonesia, the United States, or other locations where they operate. International transfers may therefore occur.
The applicable transfer safeguards depend on the provider and the law that applies to the transfer. Contact support@deadhook.app for information about the safeguards used for a particular transfer.
8. Retention #
Retention depends on the data type and the Organization's configuration. The current implementation provides:
- Raw Event payloads: retained for the configured retention period, which is 1–365 days and currently defaults to seven days. After expiry, the raw payload is purged and a purge timestamp is recorded. Event metadata, delivery records, and attempt history may remain.
- Captured response snippets: seven days from capture, up to 4 KiB, only for eligible failed textual/JSON responses when capture is enabled.
- Event, Delivery, and Attempt records: retained while the Organization exists and as needed for operation, security, and dispute handling, subject to a verified deletion request.
- Audit records: currently retained for accountability and security without an automated purge, subject to deletion requests and legal/security retention needs.
- Support tickets and messages: retained while the Organization/account exists and as needed for support, security, and legal purposes, subject to a verified deletion request.
- Sessions: default 12-hour lifetime; expired sessions are purged by maintenance. Verification tokens expire after 24 hours; invitations expire after seven days.
- Billing records: Paddle retains payment data under its own policy. DeadHook retains subscription identifiers, status, period, and correlation records while needed for billing, tax, security, and legal obligations.
- Backups: encrypted backups are retained under a limited disaster-recovery rotation and may outlive the active dataset. They are not used for ordinary product access and expire as the rotation advances.
Deleted data may remain in backups or logs for the period needed to rotate or expire those systems, and we may retain records where required by law or necessary to establish, exercise, or defend legal claims.
9. Security #
The Service uses industry-standard password hashing, opaque session tokens, HttpOnly session cookies, CSRF protection for state-changing requests, encrypted connections, tenant isolation, least-privilege access, and audit records for sensitive operations. Response snippets and raw payloads are retention-bound and access-controlled.
No system is completely secure. We do not claim SOC 2, ISO 27001, GDPR certification, or certified Indonesian PDP compliance. We describe the measures we currently implement, not a guarantee against every incident.
10. Your rights and choices #
Depending on where you live, you may have rights to access, correct, delete, restrict, or object to processing of your personal data, to receive a portable copy, to withdraw consent, and to lodge a complaint with a competent data-protection authority. Indonesian law, including the Personal Data Protection Law (Law No. 27 of 2022), and other applicable laws may provide additional rights.
To exercise a right, contact us using the details in section 13. We may need to verify your identity and authority. If your request concerns webhook payload data controlled by a DeadHook customer, please contact that customer first; we will assist them as a processor where appropriate. We will respond within the period required by applicable law.
You can clear cookies and local storage in your browser and change notification preferences through the applicable workflow. When Pro is available, you can cancel a Pro subscription through Paddle. These choices do not affect processing required for security, legal compliance, or a contract already performed.
11. Children #
The Service is intended for organizations and professional users and is not directed to children. We do not knowingly collect personal data from children. If you believe a child has provided personal data, contact us and we will take appropriate steps.
12. Changes #
We may update this Privacy Policy as the Service, providers, or law change. The revised policy will show a new last-updated date and, where required, a new effective date. Material changes will be communicated through the Service or by email where appropriate.
13. Contact #
Privacy questions and requests should be sent to support@deadhook.app. Existing customers can also use Support.
DeadHook is operated by Jois Andresky, based in Indonesia.