RCS Brands Console: The Dashboard Path
The brand enrollment flow from the RCS onboarding guide is fully clickable in the dashboard on the Messages → RCS → Brands page. The console and the API sit on the same endpoints, so a brand created through one surface is fully editable in the other — pick whichever fits the work.1. The tab: Messages → RCS → Brands
Open Messages → RCS → Brands. Each registered brand renders as a card with its status badge, industry and country, website, contact person, and submitted date. Create brand opens the registration form; opening a card takes you to the brand’s detail page, which tracks submission progress.2. The form mirrors the API fields
The form under Create brand maps one to one onto thePOST /api/v1/rcs/brands body:
- Brand identity — name, website, logo URL, industry vertical.
- Contact person — first and last name, email, phone, with an optional designation.
- Postal address — line 1 and 2, city, state or province, country, postal code.
- Optional compliance fields — tax ID and legal entity name. Carriers in some markets (for example India and Brazil) ask for these before approving an agent, so fill them in when you have them.
Code sample: create and submit a brand
Authenticate with your tenant API key. Create the brand withPOST /api/v1/rcs/brands, then pass the returned data.id to POST /api/v1/rcs/brands/{id}/submit. The API status is pending_review; the console labels that state In review.
cURL: create the draft
201 Created. Keep the returned data.id for the submit call:
cURL: submit the draft for review
200 OK; pending_review is the API value displayed as In review in the console:
Node.js and Python: complete create-then-submit flow
These dependency-light examples create the same draft, submit it, and check the tenant’s brand counts. The API key comes from an environment variable; do not put a live key in source control.422 response identifies invalid fields in error.details.issues. For example, an invalid email and a one-character country code are reported like this; correct each named field before retrying:
GET /api/v1/rcs/brands/summary. It returns total, approved, and pending without fetching brand contact or address details:
{ "data": { "total": 1, "approved": 0, "pending": 1 } }. For a no-code equivalent, use the console’s brand table, which lists each brand with its status and details.
3. Where per-brand state lives
The badge on each card tracks the brand’s state: Draft, In review, Submitted to Dotgo, Approved, Rejected, or Suspended. The detail page lays those out on a timeline — submitted → forwarded to Dotgo → decision. Editable states match the API’s conflict rules: a draft or rejected brand is editable and deletable; anything awaiting a decision stays read-only.Per-state affordances
Each state unlocks a different set of actions, and the console mirrors the API’s conflict rules exactly — anything a button denies would also fail with a409 on PATCH or DELETE:
Two expectations to set:
- Editing a rejected brand keeps the status Rejected until you submit again — the badge flips back to In review only on the next submission, not on save.
- Resend to review (on an In review brand) is safe to click more than once: if the review has quietly advanced — the provider approved or refused while your view lagged — the click is a no-op and the page resyncs to the real status instead of resetting the queue.
The detail page: timeline, note, and the two resubmission paths
Opening a card lands on the detail page, which renders a three-step submission timeline: Submitted → Forwarded to Dotgo → Approved. Each reached step shows a timestamp; steps still awaiting a decision render as pending clocks, and on a Rejected or Suspended brand the unresolved steps flip to a fail marker. The full field payload — contact, address, compliance fields — renders below it. Two reviewer answers land inline on this page in different places:-
When the brand lands on Rejected, the moderation note (
rejection_reasonin the API) renders in a red Rejection reason card, with two resubmission paths side by side. Edit and resubmit reopens the editable form so you can fix the named fields before resubmitting. Resubmit as-is puts the unchanged payload back into review — the right move when the note was a misunderstanding or a transient provider condition, and both paths land the brand back in In review either way. - A Draft brand gets a Submit for review button instead, and an In review brand gets the Resend to review card described above — degrade these paths to API fallbacks only when scripting.
Agent linking on delete
Deleting a draft or rejected brand does not cascade to its linked RCS agents. Agents point at the brand, and when the brand goes away the link is nulled — the agents are unlinked, not deleted, and stay listed under Settings → Channels → RCS for you to re-link to another brand or delete explicitly. The confirmation dialog states this before you confirm. Deleting an approved brand is not possible from any surface (a409, per the table above), so this unlink path only ever applies to brands that never cleared review.
4. Moderation note vs API error
Two different rejections, two different answers:- A moderation note. When a brand lands on Rejected, the card and the detail page both show the carrier or screening note inline — the
rejection_reasonyou would otherwise read from the API. Fix the named fields and resubmit from the same page, either after editing or with Resubmit as-is. - An API error. A failed create or update in the console surfaces the API’s error payload inline — for example a
422naming the invalid fields, exactly as the cURL examples receive it.
5. When to fall back to the API
The console handles the human path: register, curate, and resubmit one brand at a time. It thins for anything scriptable — a batch of brands across an agency’s accounts, a CI-driven onboarding step, or a readiness probe from your own tooling. Those calls stay onPOST /api/v1/rcs/brands, the count-only GET /api/v1/rcs/brands/summary, and the rest of the endpoints in the RCS onboarding guide, which the console itself consumes.
Related
- RCS onboarding — the full API path from brand to launch, plus verification, per-carrier launch, and reach sizing.
- RCS channel page — message shapes, rich cards, and the REST contract the console wraps.