Oneblink Privacy Policy
Effective: 13 October 2026
Last changed: 13 October 2026
1. Who we are
Oneblink helps owners of Instagram professional accounts turn comments and direct messages into consented leads, schedule posts, and publish link pages.
The data controller for this service is PT Wasa Adinata Sangkara, at Taman Pegangsaan Indah G-1/33, RT 003 RW 019, Pegangsaan Dua, Kelapa Gading, Jakarta Utara 14250, Indonesia. For anything concerning personal data, contact yopie.suryadi@gmail.com.
This policy covers the Oneblink site and application on app.oneblink.app, including the public pages that account owners create there.
2. Two groups of people whose data we process
This policy needs to be read with two positions in mind, because the rights and the relationship differ.
Account owners are people who sign up to Oneblink, log in, and connect their Instagram professional account. For account owner data, we decide the purpose of use.
Visitors are people who comment on an account owner's post, message that account, or fill in a form on the owner's public page. For visitor data, the account owner decides the purpose, and Oneblink processes that data on the owner's instruction, to run the service the owner configured. We do not use visitor data for our own purposes.
3. What we store
The list below names the actual tables and columns in the Oneblink database, so it can be checked rather than taken on trust.
3.1 Owner accounts and application access
| Data | Where | Why |
|---|---|---|
| Email address | users.email | Login identity, service correspondence |
| Password hash | users.password_hash | Authentication. We never store the password itself |
| Name | users.name | Shown in the application |
| Workspace name | workspaces.name | Separates one owner's data from another's |
| Session | sessions | Keeps you logged in for 7 days |
| Login attempts | login_attempts | Lockout after repeated failures |
3.2 Instagram account connections
| Data | Where | Why |
|---|---|---|
| Instagram account id and username | connections.external_account_id, connections.display_name | So the Connected accounts screen shows the right account, and incoming events route to the right workspace |
| Access token | connections.token_ciphertext | Encrypted with AES-256-GCM, bound to workspace, provider, account and connection id. Never returned through the API or MCP |
3.3 Leads from public pages
| Data | Where | Why |
|---|---|---|
| Name and email | leads.name, leads.email | Delivering what the visitor asked for, and the owner's follow up |
| Source page and version | leads.page_id, leads.page_version | So the owner can see which page and which wording the visitor saw |
| Received at | leads.created_at | Ordering and retention |
3.4 Consent records
Consent is stored as its own row, one row per purpose, not as a single combined checkbox.
| Data | Where | Why |
|---|---|---|
| Purpose | consents.purpose | fulfillment for sending the requested material, marketing for promotional email. Separate |
| Exact text shown | consents.text | Proof of what the person actually agreed to |
| Page version | consents.page_version | So later wording changes do not rewrite past consent |
3.5 Content the owner creates
Automations, pages, campaigns and simulations are what you write yourself: flows, flow_versions, pages, page_versions, page_reviews, campaigns, campaign_bindings, publish_attempts, simulations, simulation_events. We keep this to run the service and to show version history, so it stays visible which text was live at a given time.
3.6 Media you upload
Images and videos you attach to a campaign are stored on the service volume, with their metadata in media_assets.
3.7 Instagram conversations
This section applies once a real Instagram connection is active on your account.
| Data | Where | Why |
|---|---|---|
| Incoming comments and messages | incoming_events | Matching keywords and avoiding duplicate replies |
| Replies we send on your behalf | outbound_messages | Proof of what was sent, and the provider's response |
| Conversation state | conversations | Knowing which step a person reached |
Oneblink does not delete, hide, or edit comments on your account.
3.8 Activity and technical records
| Data | Where | Why |
|---|---|---|
| Audit of every change | audit | Who changed what, and when |
| Idempotency keys | requests | So a repeated request does not act twice |
| Rate limit windows | rate_limit_windows | Abuse protection. IP addresses are stored as a local HMAC hash, never in the clear |
3.9 What we do not store
We do not store card numbers or payment data, because this pilot does not take payment. We do not store your Instagram password; connecting an account runs through Meta's permission page and Oneblink only receives a token. We do not store your follower list or your account analytics.
4. Instagram data we access through Meta permissions
After you connect your Instagram professional account through Meta's permission screen, Oneblink uses the following permissions.
instagram_business_basic. Reads the account id, username, name and profile picture of the account you connect. Used so the Connected accounts screen shows the correct account, and so incoming webhook events route to the right workspace. Stored in connections.external_account_id and connections.display_name.
instagram_business_manage_comments. Receives webhook notifications when there is a new comment on a connected account's posts and reels, matches the comment text against the keywords you configured, then sends one private reply to the commenter using the comment id, within the 7-day window Meta allows. Incoming comments are recorded in incoming_events, replies sent in outbound_messages. Oneblink does not delete, hide, or edit comments.
instagram_business_manage_messages. Receives messages and button taps from visitors, then replies inside the 24-hour window with the message you wrote. If you enabled the follow step, Oneblink reads whether the visitor follows your account, and only after the visitor has sent a message or tapped a button. Oneblink never starts a conversation on its own and never messages outside the 24-hour window. What we send on your behalf is stored in outbound_messages.payload_json.
instagram_business_content_publish. Creates the media container and publishes the post you scheduled, on your behalf, then stores the returned media id so the comment automation binds to that exact post. Oneblink checks the publishing limit before publishing and never publishes the same campaign twice.
5. What the data is used for
- Running the service you configured: replying to comments and messages, serving your public pages, collecting leads, publishing scheduled posts.
- Showing you what happened, with evidence rather than estimates.
- Keeping the service safe: rate limiting, abuse protection, audit.
- Service correspondence to account owners, for example about outages or policy changes.
We do not sell data. We do not use visitor data to build profiles, and we do not use it to train models.
6. Legal basis
- Contract. Owner account data is processed to provide the service you signed up for.
- Consent. Visitor marketing email is sent only where the visitor gave separate, explicit consent, recorded with the exact text shown.
- Legitimate interest. Security, abuse prevention, and audit records.
7. How long data is kept
| Data | Kept |
|---|---|
| Owner account and workspace | While the account exists, then deleted on request per the data deletion page |
| Leads and consent records | While the account exists, or until the owner deletes them |
| Instagram tokens | Until you disconnect the account, then deleted |
| Incoming events and outbound messages | Retained as evidence of what was sent. A scheduled cleanup job is not yet in place; until it is, this data is retained |
| Audit records | Retained for the life of the workspace |
Where a retention period is not yet fixed, this policy says so rather than stating a period we do not enforce.
8. Who data is shared with
Meta Platforms. To receive comments and messages and to send replies and posts on your behalf, through the Instagram API.
The hosting provider this service runs on. Railway Corp..
We do not share data with advertisers, data brokers, or any other third party.
9. Security
- Passwords are stored as hashes, never in the clear.
- Instagram tokens are encrypted with AES-256-GCM and bound to the workspace, provider, account and connection id. They are never returned through the API or MCP.
- Workspaces are isolated; one workspace cannot read another's data.
- AI access runs on scoped tokens that can be narrowed and revoked, and revocation takes effect immediately.
- IP addresses used for rate limiting are stored as a local HMAC hash, not in the clear.
No system is perfectly safe. If a breach affects your data, we will tell you.
10. Your rights
You can ask us to show you what we hold, correct it, delete it, or give you a copy. Use the contact below.
For visitors: if you filled in a form on an account owner's public page, that owner decides the purpose of your data. Contact the owner first through the contact shown on that page. You can also contact us at yopie.suryadi@gmail.com, and we will pass your request to the relevant account owner and delete the data from our systems as far as it is our responsibility.
11. How to contact us, and how to request deletion
Email: yopie.suryadi@gmail.com
Address: Taman Pegangsaan Indah G-1/33, RT 003 RW 019, Pegangsaan Dua, Kelapa Gading, Jakarta Utara 14250, Indonesia
Data controller: PT Wasa Adinata Sangkara
Full data deletion instructions are at app.oneblink.app/data-deletion (Indonesian version at app.oneblink.app/hapus-data). That page explains what you can do yourself, how to send a request by email, and what happens to data after a connection is removed.
12. Changes to this policy
If this policy changes materially, we will change the date at the top and, for account owners, send a notice to the email on the account. Continuing to use the service after a change means the new policy applies.