Can team members see each other's verification history?
On Valid Email Checker, team members do not see each other's verification history. When a member opens Uploads & Results, they see only the bulk tasks they themselves uploaded. When they open Credits History, they see only the credit movements that came from their own actions. When they look at Verification Results, the table is filtered to results they personally produced. The owner is the only role on the account that sees the full activity across every member.
How the isolation is enforced
Two layers:
- Query filter. Every team-member-side query against
verification_tasks,verification_results, andcredit_transactionsfilters byperformed_by_user_id = current user. The query never returns rows attributed to other members in the first place. - Row-level security. As an extra guard, Supabase RLS policies on the same tables block team members from selecting rows where the
performed_byis anyone else. Even a direct API call with their token cannot leak the rows.
What the owner sees vs what a member sees
| Surface | Owner sees | Team member sees |
|---|---|---|
| Credits History | Every row from every member + owner | Only their own rows |
| Uploads & Results | Every bulk task from every member + owner | Only their own bulk tasks |
| Verification Results (single) | Every single-email verification | Only theirs |
| Team page | Per-member stats (sign-ins, credit usage) | No access (link hidden) |
| Account credit balance | Live total | Same live total (read-only) |
Why we keep this private by default
Three reasons:
- Lists are sensitive. A team member's bulk upload may contain client lists, lead lists, or contacts they are not supposed to share with peers. Showing them in a cross-team view by default would be a leak.
- Reduces noise. A 20-person team running daily verifications would produce a Credits History view with hundreds of rows per day if cross-visible — useless to any individual member trying to find their own activity.
- The owner's view is the 'admin' view. Audit needs to be in one place, and that place is the owner dashboard. Splitting it across every team member adds noise without helping anyone.
What about the credit balance itself?
The credit balance is account-level and visible to every team member. It would be confusing not to show it — they need to know whether to start a 10,000-email job. But the balance is just a number; it does not expose which member spent what. The detailed movement log is the part that stays member-private. See do team members share my credits for the shared-pool model.
The owner side: how to see who did what
Open Credits History as the owner and every row shows the team-member name (or email) who triggered it. Open Uploads & Results and every task row shows the team member who created it. Open the Team page and you get per-member rollups: credits used this month, total verifications, last sign-in time. That is the audit story end-to-end.
Related questions
Still stuck? Email support
