Complete Guide

User Walkthrough

A step-by-step catalog of every feature and user flow in the Agency Beats platform.

Last updated: July 30, 2026

01Authentication & Onboarding

1.1 Sign Up /signup

1

Enter your name

e.g., "Jane Doe"

2

Enter organization name

e.g., "Acme Agency" — this becomes your workspace

3

Enter email address

Must be a valid email

4

Set password

Minimum 6 characters

5

Click Sign up

The organization is created, you become its admin, and you land on /projects

Behind the scenes: a Supabase Auth user is created and confirmed, an organization record is created with a slug derived from the name, you are inserted as an admin, and your JWT claims are set with organization_id and user_role. If the slug is already taken the sign-up is refused and you are pointed at an invitation instead.

1.2 Sign In /login

Option A — Email and password: enter your credentials and sign in.

Option B — Google: click Continue with Google, complete the consent screen, and you are returned through /auth/callback.

Opening a protected page while signed out sends you to /login?redirect=/original-page, and you are returned there once you sign in.

1.3 Team Invitation /invite/[token]

Admin side — sending the invite:

1

Open the Team page

Invitations are admin-only

2

Click Invite Member

Opens the invite dialog

3

Enter details

Email, role, and optionally a department and job title

4

Send the invite

An email goes out with a unique link that expires after 7 days

Invitee side — accepting:

1

Open the invite link

The page is public — no sign-in required to view it

2

Already have an account?

Sign in and click Accept Invitation. The link only works for the address it was sent to.

3

New to Agency Beats?

Set a name and password directly on the invite page — no separate sign-up needed

4

You land in the workspace

You are added with the role, department and job title from the invitation

Re-inviting the same address cancels the previous invitation. Admins can also cancel a pending invitation at any time, which revokes the link immediately.

02The In-App Walkthrough

Everything on this page also exists inside the product. Agency Beats ships a guided walkthrough that runs in a panel beside the real application — not a video, not a screenshot tour, but the actual workspace with your own data in it.

Opening it

  • Walkthrough at the bottom of the sidebar, next to your avatar
  • Run the walkthrough in the command palette — press Cmd+K on a Mac or Ctrl+K elsewhere

How it behaves

BehaviourWhat it means in practice
17 sectionsOne per major surface, opening with an overview of how brands, projects, tasks and content fit together
It moves the appStepping into a section navigates to the page that section describes, so you are always reading about what is on screen
It follows youNavigate somewhere yourself and the panel jumps to that page’s section, expanded in full — it answers "what is this page?" without making you click through
Paced readingContinue reveals one message at a time; Next section moves on once you reach the end of one
Element highlightingMessages marked with a crosshair ring the exact element they describe on Dashboard, Brands, Projects, Calendar and Queue. Hovering a message you have already read re-points the ring at it.
Section indexThe list button in the panel header shows all sections with a one-line summary and a tick against the ones you have finished
Progress is rememberedKept in your browser, so closing the panel and coming back tomorrow resumes where you stopped. Start over resets it.
Role-awareSections describing pages your role cannot open — Invoices, Billing — are skipped rather than shown and blocked
It is built to be re-run, not dismissed once. The launcher stays in the sidebar permanently and shows how many sections you have left, which makes it a reasonable way to onboard a new hire on their first morning.

03Dashboard Home

Route:/dashboard

The morning read on the agency: what is due, what is waiting on someone, and who is loaded.

The five counters

CounterLinks to
Active ClientsBrands
Active ProjectsProjects
Tasks Due Today
Overdue Tasks— (turns red once there is at least one)
Team MembersTeam

The panels below

PanelContent
Today’s TasksEverything due today, with a status badge and colour dot per row
Pending ApprovalsEverything sitting in Internal Review or Client Review — each row opens the project it belongs to
Upcoming DeadlinesThe next seven days grouped by date; today is amber and anything past is red
Team WorkloadA bar per member broken into in progress, done and overdue
Upcoming MeetingsYour next scheduled calls with time and type
Recent ActivityA chronological feed of team actions, with Load more at the bottom
  • Both task lists show up to eight rows with a count badge beside the title
  • Tasks already marked Done or Published are left out
  • Workload bars go amber at one overdue task and red at three, and are scaled against the busiest person rather than a fixed capacity
None of these lists are filtered to your own work — they read across every active project in the organization. That is what makes the dashboard useful for spotting work stalling on someone else.

04Brand Management

4.1 Brands List /brands

A brand is the client record, and everything else hangs off it — projects, tasks, content, knowledge and social connections all trace back to a brand. Four counters run across the top, then a row of controls, then the cards.

  • Search brands — filters by name after a short pause
  • Platform filter — Instagram through Newsletter
  • Status filter — All Status, Active or Archived
  • Sort — Name, Recently Updated, Most Projects or Most Tasks
  • New Brand — top right, for managers and admins

Each card carries the logo (or a coloured initial), the description, platform badges in each platform's colour, Website and Guidelines markers, and three counts — projects, tasks and team members. Hover a count for its breakdown.

4.2 Create a Brand /brands/new

1

Brand name

The only required field

2

Description

A short summary of the client

3

Website URL

Optional

4

Logo

Upload an image, or leave it and get a coloured initial

5

Active platforms

Instagram, Facebook, X (Twitter), LinkedIn, TikTok, YouTube, Blog, Newsletter, Other

6

Create Brand

You are taken to the new brand’s detail page

Guidelines, contacts and assets are not part of the creation form — they live on tabs inside the brand, so you can create the record first and fill it in as the engagement gets going.

4.3 Brand Detail /brands/[id]

TabContents
OverviewBrand summary and key figures
ContactsThe client-side people, including the primary contact invoices are emailed to
GuidelinesNamed brand colours and fonts, each with an optional usage note
AssetsUploaded logos, images and documents
SocialPer-platform publishing connections for this brand
Knowledge BaseDocuments scoped to this brand, alongside the agency-wide library
Client AccessGrant a client account access to this brand’s portal
The first colour you add on the Guidelines tab becomes that brand's dot in the Calendar brand filter, so put the primary colour first.

4.4 Archiving

Hover a card for a three-dot menu with Edit Brand, View Projects and Archive Brand. Archiving is not deletion: the card stays on the list at reduced opacity, drops out of the Total Brands counter, and can be restored at any time.

05Project Management

5.1 Projects List /projects

Projects are a vertical list rather than a grid — one row each, with four counters above them for Active, Completed, With Overdue and Total.

  • Search projects — filter by name
  • Type filter — Content Operations, Web Build, Full Service
  • Status filter — Active, Draft, Paused, Completed, Archived
  • Sort — Recently Updated, Due Date, Progress or Client Name

A row carries the brand logo, the project and brand names, the end date, type and status badges, and a health dot. Below that sits a progress bar with completed over total tasks, an overdue count in red when there is one, and the assignees' avatars.

The health dot is calculated, not set by hand. It goes red once more than a fifth of tasks are overdue or the end date has passed with work outstanding, amber if anything is overdue at all, and green otherwise.

5.2 Create a Project /projects/new

1

Pick the project type

Content Operations, Web Build or Full Service — this decides which tabs the project gets

2

Choose a brand and name it

These two are the only required fields

3

Description and dates

Optional start and end dates

4

Tick service templates

Website, SEO, Content, Social, Paid Ads and more — each card shows how many tasks it would bring in from the task library

5

Create Project

If you picked any services, the task selection drawer opens straight away so you can choose what to import

Creating and editing brands and projects requires a manager or admin role.

5.3 Project Detail /projects/[id]

A project page is a set of tabs, with a Room button in the header and a Settings button for managers and admins. Two tabs only appear for certain project types.

TabShown ForPurpose
OverviewAllProject summary, key dates, description
TasksAllWork grouped by service and phase, with the task selection drawer
BoardContent Ops, Full ServiceKanban board with drag-and-drop between status columns
PhasesWeb Build, Full ServiceWeb build stage tracker with milestone dates
ListAllFlat task list with sorting
MeetingsAllProject-specific meetings
Intake & BriefsAllTurn a meeting transcript into structured service briefs and tasks
EmailsAllEmail threads linked to this project
TeamAllAssigned team members
ChatAllProject conversation, with an unread badge that also shows in the sidebar

06Tasks, Board & Phases

6.1 Task Statuses

The content pipeline
Backlog → To Do → In Progress → Internal Review → Client Review → Approved
                                                                      ↓
                                        Done ← Published ← Publishing ← Scheduled

Blocked can be set on any task at any point.

Eleven statuses in total. The later ones — Scheduled, Publishing, Published — are what put a content item on the Publishing Queue, so a task's status is also its position in the publishing pipeline.

6.2 The Board (Content Ops and Full Service)

Six columns — To Do, In Progress, Internal Review, Client Review, Approved, Done. Cards drag between them.

  • Task title, assignee avatar, due date and priority on every card
  • A purple sparkle on tasks the AI generated from a brief, with its reasoning in the tooltip
  • Drag a card to change status
  • Click a card to open the task detail panel

6.3 Task Detail

TabWhat is there
DetailsTitle, description, status, priority, assignee, due date, service and phase
ContentThe draft body for content tasks, with version history and scheduling
FilesDeliverables — uploads and Figma links, versioned, with pin-on-image annotation
CommentsThe discussion thread, with a Mark internal toggle that hides a comment from the client portal
Internal comments are the mechanism that lets you run client review inside the same thread as your own notes — anything not marked internal is what the client sees.

6.4 Phases (Web Build and Full Service)

Default web build phases
Discovery → Wireframe → Design → Development → Testing → Launch
  • Phase name, description and completion status
  • An optional milestone date, which draws a diamond on the Project Timeline
  • The tasks that belong to each phase

07Content Calendar

Route:/calendar

The calendar merges three things that live elsewhere in the app: task due dates, content items scheduled from a task, and meetings. The header keeps a running count of each for the range you are looking at, plus a red deadline count for tasks still open.

Moving around

  • Month, Week and Day tabs on the right
  • Back and forward arrows — they step by whichever view you are in — plus a Today button
  • Brand filter — narrows the whole page to one client, with a colour dot per brand
  • Legend showing which colour belongs to which event type

Drag to reschedule

In Month and Week views you can pick an event up and drop it on another day. Tasks get a new due date; content and meetings keep their time of day and only move the date. A toast confirms the move, and a failure puts the event back. Dragging only starts after a short movement, so a click never moves anything. Day view is read-only for dragging.

Creating something on a date

Hover any day cell in Month or Week view and a small plus appears in its corner; Day view has an Add Event button instead. Both open the same dialog with the date filled in.

  • The Task tab needs a title and an active project
  • The Meeting tab takes a time, duration and Internal, Client or Review type
  • The Meeting tab is disabled unless you are a manager or admin

When a day gets busy

A month cell shows three events, then a "+N more" link. That link and the day number both switch you into Day view, which splits the day into timed events and an All Day group with the brand and project named on each. On a wide screen an Upcoming panel sits to the right listing the next ten events, with Today and Tomorrow spelled out.

Events on the grid are not links. Nothing is created here except through the plus dialog, and to open a task or meeting in full you go back through its project or the Meetings page.

08Project Timeline

Route:/timeline

A Gantt chart of every task in your active projects, drawn as bars and grouped by brand and then by project down the left-hand side. Projects that are not active are left out entirely. When the chart loads it scrolls itself so today sits near the left.

Controls

  • Scale — Day, Week, Month and Quarter change how wide a day is
  • Filters — brand, project, assignee, status and priority, plus Clear to drop them all at once
  • Zoom — a slider from 50% to 300%
  • Collapse — click a brand or project row on the left to fold it away

Editing by dragging

Drag a bar sideways to shift a task, or drag its right edge to change only the due date. The chart updates as you drag and saves when you let go, rolling back if the save fails. These are the same task records your project boards use, so the change is immediately visible everywhere else.

  • Hover a bar for status, priority, assignee and both dates
  • Overdue tasks get a red outline and turn red in the left-hand column
  • Double-click empty chart space to open Quick Add Task against that row’s project, starting on the day you clicked and due three days later

Reading the chart

  • A blue Today line runs the full height
  • Weekends are shaded
  • Dashed arrows join tasks that depend on each other
  • Amber diamonds sit on a project row wherever one of its phases has a milestone date
A task with no start or due date is still drawn — from the day it was created, for three days — so dragging its bar is the fastest way to give it real dates. Filters, zoom and collapsed rows survive moving around the app but reset on a full page reload.

09Publishing Queue

Route:/queue

The queue gathers every content item whose task has reached the publishing stretch of its life. Two dropdowns at the top — brand and platform — narrow the whole board. A Pipeline / List toggle switches between the columns and a flat view grouped by date.

Four columns

ColumnHoldsDrag
In ReviewDrafts still waiting on internal or client sign-offNeither
ApprovedSigned off, but with no date yetDrag from
ScheduledHas a date and timeDrag from and to
PublishedAlready outDrop target

Scheduling

Drag a card from Approved onto Scheduled, or use the Schedule button on the card. Either way the Schedule Content dialog asks for a date and time, starting at 09:00. Reschedule reopens it with the current date filled in, and the small cross — or Remove Schedule — sends the item back to Approved. Past days are disabled in the picker.

Publish Now is not the same as Publish

Which button a scheduled card offers depends on whether that brand has a live connection for that platform, shown as a green or red dot beside the platform badge.

  • Publish Now — really posts to Facebook, Instagram, X or LinkedIn through the brand's connected account
  • Publish — records the item as published inside Agency Beats and nothing more
  • Accounts are connected per brand, under Brands then the Social tab
  • The history icon on a card opens its publish log

What actually posts it

A scheduled job runs every fifteen minutes, claims anything whose time has passed and sends it out. A failed attempt is put back and retried up to three times before it is treated as a permanent failure, and you are notified at every stage. If the platform token has expired the app tries to refresh it first, and only asks you to reconnect when that also fails.

Hovering a card reveals a checkbox. Tick a few and a bar appears at the bottom of the screen with Publish All, Unschedule All and Clear — the fastest way to clear a backlog.

10Meetings & Video Rooms

10.1 Meetings List /meetings

Every meeting in the organization, grouped by when it happens — Today, Tomorrow, This Week, Upcoming and Earlier. Three counters under the title track upcoming meetings, meetings completed this week, and completed meetings that still have nothing written up.

  • Next Up cards at the top show only the meetings you are on
  • Filters — search, brand, type, status and a date range
  • Schedule Meeting — title, an Internal, Client or Review type, a duration from 15 to 90 minutes, date and time, and optionally a brand and project
Creating a meeting requires a manager role or higher. Whoever creates it becomes the host, is added as a participant, and is the only person who can cancel it or change its status.

10.2 Meeting Detail /meetings/[meetingId]

TabWhat is there
DetailsMeeting type, status and duration
TranscriptThe stored transcript, and the box you paste or upload one into
AISummarise the transcript, then turn the summary into a brief
ParticipantsThe participant list, with an Invite button

10.3 Transcripts

Agency Beats does not listen to your calls. There is no live transcription. You bring the transcript your meeting tool already produced — paste it in, or upload it as a .txt, .vtt, .srt or .md file — and it is stored against the meeting.

Leave "Also mark this meeting completed" ticked when you save one. A project's Intake & Briefs tab only offers meetings that are marked completed and have a transcript, so an untidied meeting is invisible to the intake pipeline.

Once a transcript exists, the AI tab writes a summary from it. With a summary in place, the Brief Generator underneath can turn that into a content brief, a set of project requirements, or a change request.

10.4 Joining the Call

Press Join Meeting to drop into a full-screen video room powered by LiveKit — camera, microphone and screen sharing. Only people on the participant list can get a way in, and anyone added as a viewer can watch and listen without publishing camera or microphone. The status moves to In Progress and then Completed as the room opens and closes.

10.5 Project Rooms /projects/[id]/room

Every project also has a standing room, which is the richer of the two surfaces. Start Session opens the video room with a side panel beside it.

  • Five side panels — Participants, Transcript, Notes, Chat and an AI panel that answers questions about the project's transcripts
  • Session history — the ten most recent sessions with duration, participant count and a Transcript badge where one exists
  • Copy Guest Link — a shareable URL that needs no account
  • Managers can import an external transcript against the room, tagged Zoom, Google Meet, Teams or upload
When a room session ends and the session has a transcript, the app generates a summary, indexes the transcript for search, notifies the people who were there and emails the summary out — guests included, if they left an address.

10.6 Guest Rooms /meet/[slug]

1

Copy the guest link

From the project room lobby

2

The guest opens it

A pre-join screen asks for a name, and optionally an email so they can be sent the notes afterwards

3

Room check

The link is refused if the room has been made inactive

4

Join

They enter the video room with camera and microphone — no account, no sign-up

Guests take part in the call itself and nothing more — they never reach the dashboard, and the side panels are for signed-in team members.

11Messages

Route:/messages

Two organization-wide channels — General and Announcements — plus direct messages, created for your organization the first time anybody opens the page. Project-specific conversation lives on each project's Chat tab instead.

  • Unread conversations show a red count and a bolder name
  • New DM opens a searchable list of your teammates
  • Everyone can read Announcements, but only admins can post there
  • Enter sends, Shift+Enter adds a line, and typing @ mentions a teammate and notifies them
  • The paperclip attaches a file of up to 10 MB

Slash commands

Start the message box with / to reach the AI commands. Each reads the recent messages in the channel and posts its answer back into the conversation.

  • /ai summarize — a summary of the recent conversation
  • /ai tasks — pulls actionable tasks out of the chat
  • /ai decisions — picks out the decisions that were made

Per-message actions

  • React from a grid of emoji, and click again to take it back
  • Reply in a thread, which opens in a panel on the right rather than filling the channel
  • Pin a message — five per channel, reachable from the banner at the top
  • Edit or delete your own messages

12Intake & Service Briefs

Route:/projects/[id](Intake & Briefs tab)

The intake pipeline turns a kickoff transcript into structured service briefs, and those briefs into a real task list. It is the bridge between the conversation you had with the client and the work you are about to do.

Intake flow
Completed meeting with a transcript
        ↓  Extract
Intake record (draft) → review and edit → Approve
        ↓  Generate briefs
One brief per service discussed → Approve → Complete
        ↓  Generate Tasks
Tasks in the project, each with the AI's reason attached

12.1 Creating an Intake

1

Pick a meeting

The dropdown only offers meetings that are marked completed and have a transcript saved

2

Click Extract

The AI reads the transcript and fills in a structured record

3

Review what it found

Client and company name, industry, goals, services requested, target audience, competitors, budget range, timeline, start date, pain points and existing assets

4

Approve the intake

You can edit the key fields first, or Re-extract if the transcript was thin

Every extraction carries a confidence rating. Low and medium confidence raises a visible banner on the review screen rather than quietly presenting a guess as fact.

12.2 Service Briefs

Once the intake is approved, Generate Briefs writes one brief per service the meeting discussed. Each brief has fields built for that service.

Service TypeKey Brief Fields
WebsitePage count, CMS requirement, responsive needs, integrations, design style
SEOTarget keywords, competitor URLs, local SEO, technical audit scope
ContentContent types, frequency, tone, target audience, distribution channels
Social MediaPlatforms, posting frequency, content pillars, engagement goals
Paid AdsPlatforms, budget, target audiences, campaign types, KPIs
Email MarketingList size, campaign types, automation flows, ESP requirements
BrandingDeliverables, brand personality, competitor positioning, style preferences
CROConversion goals, testing scope, analytics tools, landing page count
AnalyticsPlatforms, KPIs, reporting frequency, attribution model
StrategyGoals, market position, competitive landscape, budget allocation

A brief starts as a draft you can edit freely, becomes approved when it is signed off, and complete when it is final. Only a complete brief can generate tasks.

12.3 AI Task Generation

1

Click Generate Tasks

Available on complete briefs only

2

The AI reads the task library

It compares the brief against every template for that service type

3

Include or exclude, with a reason

Each template gets a decision and an explanation — for example "CMS setup excluded — no CMS required per brief"

4

Included tasks land in the project

With their phase, estimated hours and the AI’s reasoning stored on the task

Afterwards a collapsible panel shows the full decision log: included tasks with a green border and a check, excluded ones with a red border, an X and an Addbutton so a project manager can pull any of them back in with one click.

  • Generated tasks carry a purple icon on the project List view and the Board, with the reason as a tooltip
  • Tasks you add back manually from the excluded list are ordinary tasks — they carry no AI reason and no sparkle

13AI Agents

Route:/ai

The sidebar calls it AI Agents; the page is headed Marketing AI Workspace. It is a grid of seven cards in three groups — click one to open its form underneath, click it again to close. Output streams in as formatted markdown, using the Anthropic Claude API through the Vercel AI SDK.

Content Creation

ToolWhat it does and what it asks for
Ad Copy GeneratorPlatform-specific ad copy. Asks for platform, campaign objective, target audience and the CTA you want.
CTA SuggestionsHigh-converting call-to-action variations. Asks for industry context, the CTA’s purpose and where it sits.
Content DrafterDrafts a post from a brief, per platform, in the brand’s voice.

Research & Analysis

ToolWhat it does and what it asks for
SEO ResearchKeyword opportunities, search intent and content gaps. Asks for an optional focus topic or URL.
Competitor AnalysisPositioning, content approach and market stance. Asks for competitor names or URLs, one per line, plus an analysis focus.
SEO Research is a reasoning tool, not a data provider. It works from your brand context and what you give it — it does not connect to a keyword tool, so it returns intent, angles and gaps rather than search volumes.

Performance & Strategy

ToolWhat it does and what it asks for
Performance ReportWrites up your own task and content data as a narrative report. Asks for a date range and a focus of overview, content or team.
Brand StrategyAn editor, not a generator. Collapsible sections for content pillars, audience personas, tone and voice with do and don’t lists, campaign objectives with KPIs, and competitive notes.
Brand Strategy generates nothing on its own — it is where you write the strategy down. Fill it in first for a brand you work on often: everything saved there is injected into every other tool on the page, which makes it the cheapest way to raise the quality of all of them at once.

What the model is given

Picking a brand does more than label the output. Each request is assembled from:

  • The brand profile — platforms, description, guidelines
  • Passages retrieved from the knowledge base for that brand
  • That brand’s recent content items and non-internal client comments
  • Its saved brand strategy
  • How you rated earlier outputs for the same brand and the same tool
The blue "Context loaded" line under the brand select is a live check on that — it counts the content pillars, personas, tone and platforms found. If it does not appear, that brand has no strategy saved yet.

Variations and feedback

  • Ad Copy, CTA Suggestions, SEO Research, Competitor Analysis and Performance Report keep each run as a numbered variation — up to five, switched with the V1 / V2 tabs
  • Copy puts the current variation on your clipboard; Clear discards them and starts over
  • Under a finished output: Save or Discard, Save to Brand (which appends the text to that brand’s guidelines), and a 1-to-5 star rating
  • Saved and highly rated results are fed back as examples of what worked, discarded ones as what to avoid — scoped per brand and per tool, so rating one client’s ad copy never bends another client’s work

AI elsewhere in the product

  • Meeting summariser and brief generator — on a meeting's AI tab (see Meetings)
  • Intake extraction and task generation — on a project's Intake & Briefs tab
  • Ask Knowledge Base — semantic Q&A over your indexed documents
  • Transcript Q&A — in the project room side panel, across that project's transcripts
  • Chat slash commands — summarise a conversation, or pull tasks and decisions out of it
  • AI Insights — short observations on velocity and capacity on the Analytics page

14Knowledge Base & RAG

Route:/knowledge-base

Headed Agency Intelligence Hub, this is the material the AI tools read. Add a document and its text is extracted, split into segments and embedded, which is what lets the tools retrieve passages by meaning rather than by keyword match.

Documents are embedded with OpenAI text-embedding-3-small (1536 dimensions) and stored in pgvector with an HNSW index. AI agents query this context before generating anything.

Eight ways to add knowledge

TabDetails
Upload FilePDF, TXT, Markdown, CSV. Text is extracted and indexed. Dragging a file onto the document grid opens the dialog here.
Paste TextAny text content — meeting notes, briefs, research
Import URLA web page is fetched, cleaned and indexed
Customer PersonaName, role, demographics, goals, pain points, preferred channels, quotes
StrategyMission, vision, target audience, pillars, competitive advantages
CompetitorCompany, positioning, strengths, weaknesses, market share, key products
CampaignName, objective, channels, budget, timeline, KPIs, creative notes
SOP / ProcessTitle, objective, scope, steps with substeps, tools, review schedule

Every tab has an Assign to Brand select and an Agency / Brand / Project scope. Fields on the five structured forms are embedded individually, so an AI tool can pull one persona's goals rather than a whole document.

Retrieval is scoped by brand

What enforces separation is the Assign to Brand field, not the Scope radio beside it. An answer draws on that brand's documents plus anything filed agency-wide, and never on another client's material. A document left as "No brand (agency-wide)" is readable in work for every client — right for your own SOPs and templates, wrong for anything a client gave you.

AI Auto-Fill

Any structured form can be populated from existing material instead of typed out.

1

Open a structured form

Click the auto-fill button (sparkles icon) at the top of the form

2

Choose a source

A file, a URL, or raw pasted text

3

Extract with AI

Fields populate with an amber highlight marking AI-filled values, so you know what to check. Editing a field clears the highlight, and the source filename or URL is kept on the document.

Watching a document become searchable

StatusMeaning
ProcessingText is still being extracted and embedded
ReadyIndexed, with a segment count on the card
No TextNothing could be extracted — a scanned image, for example
FailedExtraction or embedding error; hover the card for the retry button

A stats bar at the top counts Documents, Segments Indexed and Total Words for whichever brand you have filtered to.

Asking it questions

The purple Ask Knowledge Base card runs a semantic search across your documents and answers from the passages it finds, with four suggested questions to start from. When nothing relevant matches it says so rather than guessing.

Version history and sharing

  • Documents created through a structured form get a History button — browse earlier versions, preview the differences, and restore one (restoring is non-destructive: it creates a new version)
  • Share generates a public link at /kb/share with an optional password and expiry date, counts views, and can be revoked at any time
  • Presence avatars show who else has a document open at the same time
A share link only renders structured content, so links to Persona, Strategy, Competitor, Campaign and SOP documents show the real thing, while a link to an uploaded file shows only its title and description.

What else gets indexed

Uploaded documents are only one of six sources the RAG index draws on:

  • Knowledge base documents
  • Brand guidelines and saved brand strategy
  • Meeting transcripts
  • Content items
  • Service briefs generated from intake
  • Comments
Upload / Paste / URL / Form → Text extraction → Segmenting → Embedding (1536-dim) → pgvector
                                                                                       ↓
Structured forms → per-field embedding ──────────────────────────────────────────────→ ↓
                                          AI request → semantic search (brand-scoped) → context → response

15Task Library

Route:/task-library

126 ready-made task templates covering the ten service types the app knows about. It is a catalogue you read from and copy into projects — templates are read-only here, and no work is tracked on this page.

ServiceTemplatesExample Phases
Website16Discovery, Design, Development, Launch
Paid Ads15Setup, Campaign Build, Launch, Reporting
SEO14Audit, On-Page, Off-Page, Reporting
Content13Strategy, Production, Review, Publishing
Social Media13Setup, Content, Engagement, Reporting
Branding13Discovery, Strategy, Design, Delivery
Strategy12Discovery, Planning, Documentation, Alignment
Email Marketing11Setup, Automation, Campaigns, Reporting
CRO10Audit, Research, Testing, Reporting
Analytics9Audit, Implementation, Reporting

Using it

  • Choosing a service in the left sidebar loads its templates and shows the task count and total estimated hours
  • Templates are grouped under phase headings, each group a small table of task, type and estimate
  • Search matches on task name and description; the chips underneath filter by task type, and only types present in the current service are offered
  • Add to Project — pick a project, then Open Task Drawer takes you there with the picker already filtered to the service you were browsing
The same drawer opens automatically right after you create a project with services attached, so most of the time you never need to come here first. This library is also the reference the AI evaluates when generating tasks from a completed brief.

16Email Integration

Connect Gmail or Outlook and project-related threads land inside the project, so the client conversation sits next to the work it is about.

Connecting

1

Open Settings, then Email Connections

Linkable directly at /settings?section=email

2

Choose a provider

Gmail, or Outlook via Microsoft Graph

3

Authorize via OAuth

Tokens are encrypted at rest

4

Connected

The account is listed with its address and last-synced time

Inside a project

FeatureDescription
Thread listEvery thread linked to the project, with search and All / Unread / Starred / Archived filters
Thread viewerFull conversations with sender, timestamps and attachments
ComposeSend a new email from the project, choosing which connected account it goes from
ReplyReply straight into an existing thread
LinkAttach an already-synced thread that is not yet tied to any project

How syncing works

  • Provider push notifications deliver new mail as it arrives
  • A scheduled job also sweeps every active mailbox each fifteen minutes, with mailbox watches renewed nightly
  • One Gmail and one Outlook account can be connected per organization
  • Disconnect asks for confirmation, and only the person who connected an account can disconnect it
Disconnecting removes the connection and the threads that came with it. Nothing is changed in your actual mailbox — but the copy held in Agency Beats goes with the connection, so export anything you want to keep first.

17Calendar Sync

Connect Google Calendar so your organization's event data is available to Agency Beats without anyone re-entering it.

1

Open Settings, then Calendar

Linkable directly at /settings?section=calendar

2

Click Connect Google Calendar

Starts the OAuth flow

3

Grant read-only access

The app never asks for write permission

4

Connected

Shows the account, a last-synced time, and a disconnect option

What it does

  • Events are pulled hourly by a scheduled job and stored against your organization
  • The sync is strictly read-only — Agency Beats never creates, modifies or deletes anything in your Google Calendar
  • Disconnecting stops the sync; events already pulled in remain until removed
To be precise about where these show up: the Content Calendar at /calendar plots task due dates, scheduled content and Agency Beats meetings. Synced Google events are held separately and are not merged onto that grid.

18Analytics Dashboard

Route:/analytics

Analytics reports on the work that lives in this app — projects, tasks and content items. Nothing here comes from ad platforms or social accounts, so the numbers move when your team moves work through the board. Charts are built with Recharts.

Two filters drive everything

  • Brand — All Brands, or a single brand
  • Date range — Last 7 days, Last 30 days, Last 90 days, Last year, All time

What is on the page

SectionCards
OverviewTotal Brands, Active Projects, Tasks Completed, Overdue Tasks
Task AnalyticsTasks Over Time, Team Workload
Projects & StatusTask Status Distribution, Project Progress
Content PipelineContent by Platform, Content Pipeline funnel
IntelligenceAI Insights, Compare Periods

Drill down to the tasks behind a chart

Three of the charts are clickable. Clicking one opens a sheet from the right listing the matching tasks with status, project and due date, each row linking through to its project.

  • Task Status Distribution — click a slice of the donut
  • Team Workload — click a bar for one team member
  • Project Progress — click a project bar

The Intelligence row

AI Insights sends your task counts to the model and returns three to five one-line observations about velocity, bottlenecks and capacity; it shows an empty state until there are tasks in range. Compare Periods puts two ranges side by side for Tasks Created, Tasks Completed and Overdue Tasks.

Compare Periods has its own two range selects that ignore the page filter, so you can leave the page on Last 30 days while comparing Last 7 days against Last 90 days inside the card. The small green or red percentage on the overview cards compares against the immediately preceding window of the same length.

19Notifications

19.1 The Bell

In the top bar on every dashboard page. An unread count badge, a popover with recent notifications grouped for compactness, and a View All link through to the full page.

19.2 Notifications Page /notifications

Full-text search across titles and bodies, a filter by event type with an active-filter count, and three tabs:

TabShows
AllEvery notification
UnreadOnly unread, with a red count badge
ArchivedManually archived, plus older items swept nightly

Each row carries an icon, title, body preview, relative timestamp, group badge, action buttons and archive or delete controls, with Load more pagination at the bottom.

19.3 Channels

ChannelDelivery
In-AppReal-time via Supabase Realtime, in the bell and on the notifications page
EmailIndividual emails via Resend, or batched into a daily or weekly digest
Web PushNative browser notifications (VAPID — requires permission)
SlackBlock Kit messages to a configured incoming webhook
WebhookHMAC-SHA256-signed HTTP POST to your own endpoint

19.4 Events you can tune

Seven event types have per-channel switches in Settings:

EventWhen it fires
Task AssignedA task is assigned to you
Status ChangedA task you are involved with changes status
New CommentSomeone comments on a task you are on
Due Date ApproachingA daily job flags due dates coming up
Content ScheduledContent is given a publish date
Content PublishedContent goes live
Meeting StartingA meeting you are invited to is about to begin
The platform raises more notification types than these seven — social publish success and failure, meeting ended and summary ready, chat mentions, direct messages and thread replies all appear in the bell. The seven above are the ones with their own channel switches.

20Team Management

Route:/team

Everyone in the organization, grouped by department with an Unassigned group at the end, and what each person is currently carrying. Stats along the top count Team Members, Departments and Active Tasks.

Member cards

  • Name, job title, skills and a colour-coded role badge
  • Active task count and the number of projects they span
  • An overdue count in red when any assigned task is past due
  • A capacity bar with a workload label beside it
The capacity bar treats twelve active tasks as full, so anyone at the end of the bar has twelve or more open. Search matches on name, job title and skills, which makes it the quickest way to find who has done a particular kind of work before.

Inviting someone (admin only)

1

Click Invite Member

Admins only

2

Enter the email address

The invitation link is bound to this address

3

Choose a role

Admin, Manager, Creator, Developer or Viewer

4

Optionally set department and job title

Applied automatically when they accept

5

Send

The link expires after 7 days

Client is a real role but it is not offered here. Client access is granted per brand from that brand's Client Access tab, so a client only ever sees the portal. Invitations are also refused once you are at your plan's seat limit.

Pending invitations

Once there is at least one outstanding invitation, admins see a Pending invitations card above the member list with each address, the role it was sent for, and either its expiry date or the word Expired. Cancel revokes it and the link stops working immediately; you can always send a fresh one.

Departments

Admins can open Departments to add, rename, recolour or delete departments, and can edit any member's role, department and job title from the menu on their card. Deleting a department moves its members to Unassigned rather than removing them.

Role badges

AdminManagerCreatorDeveloperViewer

21Settings & Integrations

Route:/settings

Settings is a single page with a searchable nav down the left. Picking a panel swaps the content on the right and writes the choice into the address bar, so every panel is linkable and bookmarkable.

You only see the panels your role allows — several are admin-only, and the nav hides them rather than showing something you cannot use.

The panels

PanelWhoWhat is in it
GeneralEveryone (admin edits)Default task duration, working days, organization timezone — the defaults scheduling reads
OrganizationAdminOrganization name and logo, plus a read-only Organization ID for API use
AccountEveryoneYour avatar, name, personal timezone, email and password
Notification PreferencesEveryoneSeven event types against five channels, plus email digest frequency
Quiet HoursEveryoneA start and end time, a timezone, and the days it applies to
Email ConnectionsEveryoneConnect and disconnect Gmail or Outlook
CalendarEveryoneConnect Google Calendar, read-only
Apps & IntegrationsAdminFigma, and the Slack incoming webhook URL with a Test Connection button
Social MediaAdminAn overview of which platforms each brand has connected, linking through to the brand
WebhooksAdminYour endpoint URL, a generated signing secret, event subscriptions, a test payload and a delivery log
Auto-Assignment RulesManager and adminRoute new tasks automatically (see below)
API KeysAdminGenerate a key — shown once — then metadata, last-used and Revoke
Audit LogAdminTime, actor, action and entity for everything that happened

Auto-assignment rules

A rule matches on what kind of work it is, and then routes it.

  • Conditions — project type, platform, task type, service type
  • Actions — assign to a specific member, round robin across several, or assign to a department

Webhooks

  • Payloads are signed with HMAC-SHA256 — verify the signature header before trusting a request
  • The panel sends a test payload and reports the status code it got back
  • A delivery log sits underneath the configuration
  • Leaving the event list empty subscribes you to everything; tick specific events only when you want to narrow it
Quiet hours queue non-in-app notifications during the window and deliver them once it ends. The Slack and Webhook columns in Notification Preferences only do anything once the matching integration is configured.

22Client Invoicing

Route:/invoices(manager and admin)
Two different things, deliberately kept apart. Invoices are what you bill your clients. Billing is your agency's own subscription to Agency Beats. Invoices are records and documents — the app numbers them, renders the PDF and emails it, but it does not take payment. "Mark paid" is you recording that the money arrived.

22.1 The Page

Two tabs under the title: Invoices for one-off bills, Recurring for retainers. The Invoices tab has a status filter and, when anything is outstanding, a running total of everything sent but unpaid. Each row shows the reference, status, client, issue and due dates, and total.

22.2 Building a Draft

1

New invoice

Choose the client, currency, issue and due dates, and an optional tax percentage

2

Add line items

Description, quantity and unit price — subtotal, tax and total recalculate as you type

3

Add notes

A good home for payment terms or bank details

4

Save

It saves as a draft, and nothing is visible to the client until you send it

22.3 Sending

Send to client flips the invoice to sent, renders the PDF on the server, stores it, and emails it to the brand's primary contact with the PDF attached and a link to their portal. A Download PDF entry then appears in the row menu.

If the client has no contact with an email address, or the send bounces, the app tells you so rather than pretending it arrived. The invoice is still issued and still visible in the client portal.

22.4 What Can Still Change

An issued invoice is a document of record, so the lifecycle is deliberately strict.

Invoice lifecycle
Draft ──edit / delete──▶ Draft
  │
  └─send─▶ Sent ──▶ Paid   (final)
             │
             └────▶ Void   (number retained)
  • Edit and Delete only appear on drafts
  • Mark paid and Void only appear on sent invoices
  • A paid invoice cannot be voided
  • Voiding keeps the number, so the sequence never has gaps

22.5 Retainers

A retainer is a schedule that issues the same invoice every month, quarter or year. Set the client, cadence, billing day, first issue date, optional end date and the line items once, and each period produces an invoice from them.

  • New retainer to create one, then Pause, Resume, Edit or Delete
  • A banner appears when schedules are due, with Generate due invoices
  • A daily job also issues anything that has come due
  • Deleting a schedule keeps every invoice it has already issued
With Send automatically on, each generated invoice is rendered, stored and emailed to the brand's primary contact without you touching it — and the run reports an undelivered count for any client with no contact address, so a silent failure is not possible. Give that contact an email address first.

23Billing & Subscription

Route:/billing(admin)

What your agency pays for Agency Beats. Everything here is backed by Stripe. The bar across the top gives your plan name, subscription status, next billing date and current member count, and counts down the remaining days of a trial.

Plan limits

Two things are actually capped — team members and brands — and both are enforced, not advisory.

LimitStarterProAgency
Team members310Unlimited
Brands310Unlimited
Once you are at the seat cap the Invite Member button on the Team page starts refusing new invitations. Projects, tasks and AI usage are not metered.

On the page

SectionContent
Status barPlan, status (free, trialing, active, past due), next billing date, member count
UsageA progress bar for members and one for brands, or "unlimited" on Agency
Plan cardsThe three tiers with what each includes, and an Upgrade button
Payment MethodThe card on file, its expiry and the next charge date
Billing historyRecent Stripe invoices, with links to the PDF or the hosted copy

Changing plan

Upgrade hands you to Stripe Checkout and returns you here with a confirmation. Checkout charges the plan price plus a per-seat line for your current member count. Update Payment Method opens the Stripe customer portal, which is also where you change the card, cancel, or pull older receipts.

Pass about seventy percent of a limit and a small inline prompt appears under that usage bar with the next plan and what it would give you. A failed payment raises a past-due warning above everything else.

24Client Portal

A separate, stripped-down surface for your clients — no sidebar, no dashboard, just the brands they have been given access to.

24.1 Granting Access

1

The client creates an account

Access is granted to an existing account, so they sign up first

2

Open the brand, then Client Access

Managers and admins only

3

Grant Access by email

Access is per brand — a client sees only the brands they have been added to

4

Revoke any time

Removing access takes effect immediately

24.2 Portal Home /portal

A grid of the brands the client can see, each card showing the logo or initials, name and description, linking into that brand's portal.

24.3 Brand Portal /portal/[brandId]

TabContent
Content ReviewEverything sitting in Client Review — the draft body, platform badge and every attached deliverable with its version. Approve, or Request Changes with a comment (required).
Project MilestonesRead-only. Active and completed projects, each with a progress bar and a numbered phase list showing milestone names, dates and status.
InvoicesRead-only. Outstanding balance, then every issued invoice with its reference, status, dates, total and a PDF download. Drafts are never shown.

What the client can do

  • Read content drafts and view attached deliverables
  • Leave pin-on-image annotations on image deliverables
  • Approve a piece of content, which moves the task to Approved
  • Request changes with a comment, which sends the task back to In Progress
  • Track project phase progress and download issued invoices

What the client cannot do

  • Reach the dashboard, projects, brands or any internal page
  • See comments your team marked internal
  • See invoice drafts, or pay online — the portal shows the document, not a checkout
  • Create or manage anything: projects, tasks, team, AI tools, brand settings

25Super Admin

Route:/super-admin

Platform-level administration, for whoever operates the platform rather than for agencies using it. It has its own sidebar — Overview, Organizations, Subscriptions, Platform Admins — and a link back to the dashboard.

25.1 Overview

  • Three stat cards: Organizations, Active Users, Active Subscriptions
  • The ten most recent organizations with member count, plan and creation date

25.2 Organizations /super-admin/organizations

  • Search by name, with a total count
  • Per row: slug, member count, plan, active or disabled state, created date
  • Disable or enable an organization in one click

Opening one gives member, brand and project counts, a subscription card that can override the plan between Starter, Pro and Agency, a member list where individual accounts can be banned or re-enabled, and the brands on the account.

25.3 Subscriptions /super-admin/subscriptions

A searchable table of organization, members, plan, status and a plan override select, for support and testing.

25.4 Platform Admins /super-admin/admins

  • Add a platform admin by user ID, with optional notes
  • List current admins with the date granted
  • Remove admin rights — you cannot remove yourself

25.5 Impersonation

From an organization's detail page, Impersonate switches your context into that organization so you see exactly what they see. An amber banner across the top of every dashboard page reads "You are viewing this organization as a Super Admin" with a Return to Super Admin button, so the state is never ambiguous.

Super Admin is a platform-level flag, entirely separate from organization roles. The sidebar entry only appears for accounts that carry it, and anyone else who types the URL is sent back to their dashboard.

26User Roles & Permissions

Role Hierarchy

Role hierarchy
Admin > Manager > Creator > Developer > Viewer > Client
Permissions in Agency Beats are deliberately coarse. A small number of capabilities are gated by role — the ones below — and everything else in the shared workspace is open to every member of the organization. The table shows what is actually enforced, not an aspirational matrix.

What is enforced

CapabilityAdminManagerCreatorDeveloperViewerClient
View the workspace
Create and edit tasks
Comment and upload deliverables
Schedule and publish content
Use AI agents
Use the knowledge base
View analytics
Create and edit brands
Create and edit projects
Schedule meetings
Client invoicing
Auto-assignment rules
Invite and manage team
Manage departments
Edit organization settings
Manage integrations & webhooks
Manage API keys
View the audit log
Manage billing
Post in Announcements
Access the client portal
Approve content in the portal
  • A meeting host is the only person who can cancel their meeting or change its status, whatever their role
  • Participants added to a meeting as viewers can watch and listen but cannot publish camera or microphone
  • Client is granted per brand from the brand’s Client Access tab, never from the Team page
  • Super Admin is a separate platform-level flag, outside this hierarchy entirely

Application Summary

By the Numbers

Dashboard pages24
Marketing pages10
Portal pages2
Super Admin pages5
API routes62
tRPC routers40
Sidebar items16
In-app walkthrough sections17
Notification channels5
Tunable notification events7
AI tools on the AI page7
RAG source types6
Knowledge form types5
Service types10
Task templates126
User roles6 + Super Admin
Task statuses11
Project types3
Default web build phases6
Social publishing targets4 (Facebook, Instagram, X, LinkedIn)

Tech Stack

LayerTechnology
FrontendNext.js 15, TypeScript, TailwindCSS, shadcn/ui
APItRPC (end-to-end type safe)
DatabaseSupabase (PostgreSQL + RLS + Realtime)
AuthSupabase Auth (email/password + Google OAuth)
VideoLiveKit
AIAnthropic Claude via the Vercel AI SDK
RAGpgvector (HNSW) + OpenAI text-embedding-3-small
Email deliveryResend
Email syncGmail API + Microsoft Graph (OAuth)
CalendarGoogle Calendar API (read-only sync)
PushWeb Push (VAPID)
ChartsRecharts
TimelinePurpose-built Gantt renderer
EditorTiptap (rich text)
StorageCloudflare R2
PaymentsStripe
Scheduled jobsGitHub Actions cron against guarded endpoints