Seven platforms, one source of truth.
Mashal connects directly to the official API of every platform you publish on. The connection that powers your brief uses a least-privilege analytics scope — Mashal sees your numbers, never your password. Turn on Conversations and Mashal also reads and replies to comments and DMs on the accounts you connect. Disconnect from Settings at any time.
How the connection works.
You click Connect on a platform tile in Settings. The platform opens its own login page, you approve the access Mashal requests, and you're back on Mashal a few seconds later. We never see your password. We never store an access token your browser hasn't been told to give us. Every sync runs nightly against the same API any approved third-party app would use.
Least-privilege OAuth.
The connection that powers your brief is scoped to read insights — it fetches your posts and your numbers, nothing more. Conversations, when you enable it, adds a separate messaging scope so you can reply to comments and DMs from Mashal. You grant each capability explicitly.
No password sharing.
The login happens on the platform's own page. Your password never touches Mashal's servers or any third party we work with. The token we receive is revocable from the platform's settings at any time.
Disconnect in one click.
Open Settings → Connected Accounts → Disconnect. The token is revoked, the historical data we've pulled stays in your workspace until you delete it, and no future sync runs against that account.
What we fetch from each platform.
Each platform exposes a different shape of data through its API. Below is exactly what arrives in your workspace from each one, what gets surfaced in your daily brief, and the tier where it unlocks. Anything not listed isn't pulled. Anything that requires a business account or a specific entitlement is called out on the platform's tile.
- Per post: caption, post type, reach, impressions, likes, comments, saves, shares, profile visits, posted-at timestamp.
- Reels: plays, average watch time, accounts engaged, sticker taps when present.
- Stories: impressions, exits, replies, sticker interactions for the last 24 hours of active stories.
- Account level: follower count, follower growth, total reach last 30 days, top-performing post.
- Audience demographics (Brand+): age, gender, country, city, language breakdowns from your followers. Refreshed daily. Smaller accounts (under 100 followers) won't see data; that's a platform limit.
TikTok
All plans- Per video: caption, video duration, plays, likes, comments, shares, saves, average watch time, average percentage watched.
- Account level: follower count, total likes, following count, video count, recent posting cadence.
- Captions read in any language — Mashal handles Arabic, Urdu, Hindi, Indonesian, Portuguese, Spanish, French, Turkish, English natively, plus the workspace-language preference for any reading the brief generates.
- Hashtag co-occurrence: which hashtags travel with your top posts. Surfaced in the brief when a pattern emerges.
YouTube
All plans- Per video: title, description, duration, views, watch-time minutes, average view duration, likes, comments, click-through rate where the platform exposes it.
- Shorts: same engagement set as long-form, plus the Shorts feed counter when available.
- Channel level: subscriber count, subscriber growth, video count, channel-wide watch-time, upload cadence.
- Direct integration via Google's official Data API. No third-party scraping layer between Mashal and your channel.
- Per post: text content, post type (article, document, video, image), impressions, unique impressions, clicks, likes, comments, reposts, follows generated.
- Comment threading: top-level comments are pulled with their reaction counts so the brief can flag a thread that's gaining traction independent of the post itself.
- Page or profile level: follower count, follower growth, demographic breakdown of followers (industry, seniority, geography) where LinkedIn exposes it.
- Both surfaces: Mashal connects to LinkedIn Company Pages and to personal-brand Creator content; the same fetcher handles both with the appropriate scope.
- Per post: message, attachment type, organic reach, paid reach when present, impressions, reactions broken down by type, comments, shares, link clicks.
- Video posts: minutes viewed, average watch time, completion rate, audience retention curve when the page is eligible.
- Page level: follower count, page likes, page-level reach, follower demographics for Brand+ workspaces.
- Cross-platform merge: when a post is cross-published to Instagram from a Facebook Page, Mashal merges the two performance records so the brief reports one number rather than two halves.
X (Twitter)
Brand & Agency- Per post: content, post type (post, reply, quote), impressions, engagements, profile visits, link clicks, detail expands, video views when present.
- Engagement rate: calculated against the impressions number X exposes through the official Insights endpoint, so the rate matches what you'd see in your own X analytics dashboard.
- Account level: follower count, follower growth, listed count.
- Window: Mashal pulls the last 30 days every sync. X's API doesn't expose a longer history through the read scope we use, so the first sync is also a 30-day backfill.
Snapchat
Brand & Agency- Per story: snap views, completion rate, story exits, screenshots taken, swipe-ups when present, story length in seconds.
- Per snap: total views, unique viewers, average view time, taps forward and backward.
- Audience demographics: age, gender, country, region breakdowns. Snapchat exposes richer audience signal than most platforms here, which is why we surface it prominently for workspaces in the GCC and Egypt where Snap remains a primary discovery channel.
- Lens and filter performance when your account is set up for them. Brand workspaces with sponsored lens campaigns can see views, shares, and play time alongside organic story data in a single view.
Competitor tracking.
Mashal runs the same analysis on up to 50 competitor handles per workspace (the limit depends on your tier). Competitor data comes from each platform's public profile and post surfaces — no authorization needed from the competitor, no DM-style access, only what anyone could see by visiting the public profile. We refresh competitor data nightly so the brief always has a fresh comparison.
On Brand and Agency plans we additionally pull Meta's Ad Library for any Facebook or Instagram competitor you track. The Ad Library is a public catalogue of every paid Meta ad currently running. Mashal surfaces each competitor's live creative — headlines, calls to action, creative type, start date, regions served — in your Intel screen so you can see what they're spending money to push without a separate ad-intelligence tool.
What powers your brief, and what it leaves alone.
A short, honest list of what the analytics connection does and doesn't reach. If a category isn't here and isn't in the per-platform sections above, assume Mashal doesn't touch it.
- Your DMs, comments, and inbox — unless you switch on Conversations. The analytics connection that powers your brief doesn't read any of them; those scopes aren't part of it. Conversations does read comments and DMs, but only on the accounts you connect to it, and only so you can reply to them from Mashal.
- Your drafts. The analytics connection reads published posts only — anything sitting in a draft state on the platform isn't part of what it pulls.
- Other people's accounts you don't own. Competitor tracking reads what's already public. We don't request OAuth on accounts that aren't yours.
- Anything you didn't initiate. Mashal only acts when you tell it to — the replies you type and the comment-to-DM automations you set up and can switch off at any time. Nothing goes out on your accounts without your say-so.
Authorise an account, get your first brief by 6 AM tomorrow.
The first connection takes under 90 seconds. The first brief arrives the morning after you connect, in your workspace's local timezone.
Start free trial