Who we are
Brody Felstead Media ("BFM", "we", "us") operates the BFM Media platform at bfmedia.app — software our agency uses to manage social media content, scheduling, analytics, and comment-triggered DM automation on behalf of our clients. This Privacy Policy explains what data we collect, why we collect it, and how to request that we delete it.
What we collect
When you connect a social media account (Instagram, Facebook, YouTube, TikTok, LinkedIn, Threads) via our platform's Connections page, the OAuth flow returns a set of data from that platform. We store:
- Your account identifier on that platform (user ID, Page ID, channel ID, or similar)
- Your display name, handle, and profile picture
- An access token and (where provided) a refresh token — these let us act on your behalf within the scopes you granted
- The list of scopes you granted during the OAuth consent flow
- Content you (or we on your behalf) create, schedule, or publish — captions, media URLs, posting timestamps, insights data pulled from the platform
We do not collect your platform password. The password never passes through our systems — all authentication happens on the platform's own OAuth login screen.
Why we collect it
- Publishing — scheduled or on-demand posts to your connected accounts, with content you (or your BFM operator) have approved
- Comment-triggered automations — watch comments on your public posts for keywords you've configured, send the corresponding DM reply + deliverable
- Analytics — pull engagement + reach data from each platform's API to render it in the BFM dashboard
- Account health — detect expired or revoked tokens and prompt you to reconnect
Where it lives
Your data is stored in a managed Postgres database (Neon, hosted on AWS us-east-2) and on BFM-controlled hardware for the business logic that uses it. Access tokens are stored in Postgres text columns protected by the database vendor's encryption-at-rest. All transit between our services and platform APIs uses HTTPS.
Platform-specific data access
Each platform exposes its own set of API scopes. Below is what we access, how long we keep it, and how to request deletion for each.
TikTok
Via TikTok Login Kit + Content Posting API: your TikTok open_id (account identifier), username, display name, avatar, access token, and refresh token. We do not read your TikTok comments, DMs, follower lists, or private videos — the Content Posting API does not provide access to these.
Retention: stored for the duration of your BFM Media account or until you disconnect your TikTok account in Settings → Connections, whichever is sooner. Tokens are refreshed automatically; retiring the connection deletes the stored tokens immediately.
Deletion: click Disconnect on your TikTok connection in bfmedia.app → Settings → Connections to delete tokens and metadata immediately. For full account deletion email data-deletion@bfmedia.app or submit the form below. You can also revoke BFM Media's access on TikTok at any time via TikTok's own Settings → Security → Manage apps.
Via Instagram API with Instagram Login: your IG Business account user_id, username, account type, profile picture, and long-lived access token. Scopes: instagram_business_basic, instagram_business_content_publish, instagram_business_manage_comments, instagram_business_manage_messages.
Retention + deletion: same model as TikTok — tokens live for the duration of your account or until you disconnect in Settings → Connections. Revoke BFM access on IG via Instagram app → Settings → Apps and websites.
Facebook Pages
Via Facebook Login: your Facebook user id, display name, email, and the list of Pages you administer with their Page access tokens. Scopes include pages_show_list, pages_read_engagement, pages_manage_posts, pages_messaging, business_management.
Retention + deletion: same model as above. Revoke BFM access on Facebook via facebook.com → Settings → Business Integrations.
YouTube
Via Google OAuth: your YouTube channel id, title, thumbnail, and access + refresh tokens. Scopes: youtube.upload, youtube, youtube.readonly, yt-analytics.readonly, youtube.force-ssl.
Retention + deletion: same model as above. Revoke BFM access on Google via myaccount.google.com → Security → Third-party apps with account access.
Via LinkedIn OAuth: your member identifier, name, email, and access token. Scopes: openid, profile, email, w_member_social.
Retention + deletion: same model as above. Revoke BFM access on LinkedIn via linkedin.com → Settings → Data privacy → Permitted services.
Who we share it with
We do not sell your data. We do not share it with third-party advertisers. The only recipients are:
- The platforms you've connected — we send them your tokens and requests on your behalf, as scoped by the permissions you granted
- BFM operators + agency staff managing content for your workspace, under strict role-based access controls
- Infrastructure providers (Vercel for web hosting, Neon for the database, Resend for email delivery, Cloudflare for DNS and bot protection) — all under their own privacy policies and DPAs
- Law enforcement, only when compelled by a valid legal order
Deleting your data
You can disconnect any account at any time via the Connections page in the BFM app. That removes the stored tokens and metadata for that account immediately.
To request full account deletion — removing every workspace, membership, post, comment, trigger, and connection tied to your identity — send a request to the data-deletion endpoint at POST https://bfmedia.app/api/data-deletion with your user email in the body, or email brodyfelstead@gmail.com. We confirm within 72 hours and complete deletion within 30 days.
You may also revoke our access directly on any platform's settings page (e.g. Facebook Settings → Business Integrations) — that stops new activity immediately, and your stored data on our side is purged within 30 days of revocation.
Retention
We keep data for as long as your workspace is active. If your workspace is deleted or you disconnect every account, we purge your data within 30 days except where retention is required by law (e.g. billing records for seven years in the United States).
Children
The BFM platform is not directed at anyone under 13 years of age. We do not knowingly collect data from children. If you believe we've collected data from a minor, email brodyfelstead@gmail.com and we'll delete it.
Changes
Material changes to this policy are communicated at least 14 days in advance via email to the primary contact on each workspace. The "Last updated" date at the top of this page reflects the most recent revision.
Contact
Questions? Email brodyfelstead@gmail.com. For data-deletion requests specifically, see the Deleting your data section above.