RA OS — Setup Guide for Research Analysts

Onboard your practice onto RA OS step-by-step — when, where, what, how, and why.

📄 PDF Download (English + Hindi) 📘 Full Onboarding Guide (English) 📘 पूरी Onboarding Guide (हिंदी) ❓ Full FAQ (B2B) 🐛 Bug Report Tab
Take the Interactive Admin Tour Every page in your dashboard, explained one slide at a time — self-paced, or hit play and let it run.
🚀 How to Join & Get Started

A first-time look at your whole practice, at a glance: exactly what to do, in order, and exactly which document gets uploaded at each step. Steps marked Upload involve uploading a real file.

आपकी पूरी प्रैक्टिस का पहली बार में एक नज़र में ओवरव्यू: बिल्कुल क्या करना है, किस क्रम में, और हर स्टेप पर बिल्कुल कौन-सा डॉक्यूमेंट अपलोड होता है। Upload मार्क वाले स्टेप्स में असली फ़ाइल अपलोड होती है।

1
Sign Up — Email OTP + Password
Go to the B2B signup page, verify your email with a one-time code, then set your password.
2
Fill Your Org Profile
Same signup wizard: organization name, SEBI registration number, BSE enlistment number, desired subdomain, and support contact.
3
Upload Verification DocumentsUpload
For the platform owner's manual review: SEBI Registration Certificate, Business Registration Proof (GST Certificate, or Shop & Establishment / Udyam if you have no GST — optional either way), PAN, Bank Account Proof, Aadhaar, and a short live Video KYC recorded in-browser.
4
Wait for Approval
A platform reviewer checks your submitted documents and approves or rejects your organization — you can log in once approved.
5
Initial Settings Setup (once approved)
Complete your public-facing setup before adding any clients:
Step 5a — Upload: Logo & FaviconUpload — Settings → Branding (upload the actual image file, don't paste a URL).
Step 5b — Upload: Investor Charter (Welcome Kit) PDFUpload — Settings → Investor Charter (Welcome Kit) — your own signed SEBI Investor Charter, attached to every client's Welcome Kit from then on.
Step 5c — Upload: Agreement / MITC PDF TemplateUpload — Settings → Agreement / MITC PDF Template — your own reviewed client agreement; both Digio and consent-click signing use this same file.
Step 5d — Upload: Legal & Compliance DocumentsUpload — Disclosures, Terms & Conditions, MITC, Refund Policy, Grievance Redressal, Privacy Policy, AML Policy, and Internal Policy.
6
Add Payment Credentials
Choose how your clients pay you:
Step 6a — Razorpay — Settings → Your Own Razorpay Account: Key ID, Key Secret, Webhook Secret.
Step 6b — Upload: Valid UPI QR CodeUpload — a free, always-available option: set your UPI ID (must contain @valid) and upload your QR code image.
Step 6c — Optional Upload: Educational CMS UPI QRUpload — only if you plan to sell courses: Educational CMS → Payment Settings tab → Dedicated UPI — a separate QR code from the client-payment one above, so course-fee money is tracked apart from advisory-fee money.
7
Configure Telegram & Communication Channels
Settings → Channel Configuration: bot token + webhook + group mapping for Telegram; optionally WhatsApp Business and your own Resend email sender.
8
Create Your First Plan
Plans page — category, segment, price, duration. This is exactly what a client sees at signup.
9
Onboard Clients
Two ways to build your roster:
Step 9a — Fresh signups — add clients manually in Client Master (Logs) and share your public signup URL; each client then signs their agreement, completes KYC, and pays.
Step 9b — Upload: Import Existing ClientsUpload — Data Migration page: a CSV/Excel export from your prior software (clients, plans, and historical payments), with a column-mapping step.
Step 9c — Optional Upload: Signed Agreement PDFUpload — Client Master → Manage ▾ → Upload Signed (16-page) — manually attach a client's real Digio Aadhaar-OTP signed agreement PDF (the full document Digio emails you) whenever it wasn't captured automatically.
10
Go Live — Start Trade Dispatch
Send your first recommendation from Trade Dispatch — your practice is now fully live on RA OS.
🚀 पूरी हिंदी में — कैसे जुड़ें और शुरू करें
1
साइन अप करें — ईमेल OTP + पासवर्ड
B2B साइनअप पेज पर जाएं, एक OTP से अपना ईमेल वेरिफ़ाई करें, फिर अपना पासवर्ड सेट करें।
2
अपनी ऑर्गनाइज़ेशन प्रोफ़ाइल भरें
इसी साइनअप विज़ार्ड में: ऑर्गनाइज़ेशन का नाम, SEBI रजिस्ट्रेशन नंबर, BSE एनलिस्टमेंट नंबर, मनचाहा सबडोमेन, और सपोर्ट कॉन्टैक्ट।
3
वेरिफ़िकेशन डॉक्यूमेंट्स अपलोड करेंUpload
प्लेटफ़ॉर्म ओनर की मैन्युअल समीक्षा के लिए: SEBI रजिस्ट्रेशन सर्टिफ़िकेट, बिज़नेस रजिस्ट्रेशन प्रूफ़ (GST सर्टिफ़िकेट, या GST न हो तो Shop & Establishment / उद्यम आधार — दोनों ही वैकल्पिक), PAN, बैंक अकाउंट प्रूफ़, आधार, और ब्राउज़र में रिकॉर्ड किया गया एक छोटा लाइव वीडियो KYC।
4
अप्रूवल का इंतज़ार करें
एक प्लेटफ़ॉर्म रिव्यूअर आपके सबमिट किए गए डॉक्यूमेंट्स चेक करके आपकी ऑर्गनाइज़ेशन को अप्रूव या रिजेक्ट करता है — अप्रूव होते ही आप लॉगिन कर सकते हैं।
5
शुरुआती Settings सेटअप (अप्रूव होने के बाद)
कोई भी क्लाइंट जोड़ने से पहले अपना पब्लिक-फ़ेसिंग सेटअप पूरा करें:
स्टेप 5a — अपलोड: लोगो और फ़ेविकॉनUpload — Settings → Branding (असली इमेज फ़ाइल अपलोड करें, URL पेस्ट न करें)।
स्टेप 5b — अपलोड: इन्वेस्टर चार्टर (Welcome Kit) PDFUpload — Settings → Investor Charter (Welcome Kit) — आपका अपना साइन किया हुआ SEBI इन्वेस्टर चार्टर, जो तब से हर क्लाइंट के Welcome Kit में अटैच होता है।
स्टेप 5c — अपलोड: Agreement / MITC PDF टेम्पलेटUpload — Settings → Agreement / MITC PDF Template — आपका अपना reviewed क्लाइंट agreement; Digio और consent-click दोनों signing इसी फ़ाइल को इस्तेमाल करते हैं।
स्टेप 5d — अपलोड: लीगल एंड कंप्लायंस डॉक्यूमेंट्सUpload — Disclosures, Terms & Conditions, MITC, Refund Policy, Grievance Redressal, Privacy Policy, AML Policy, और Internal Policy।
6
पेमेंट क्रेडेंशियल्स जोड़ें
तय करें कि आपके क्लाइंट आपको कैसे पे करें:
स्टेप 6a — Razorpay — Settings → Your Own Razorpay Account: Key ID, Key Secret, Webhook Secret।
स्टेप 6b — अपलोड: Valid UPI QR कोडUpload — हमेशा उपलब्ध एक free विकल्प: अपना UPI ID (@valid ज़रूरी) सेट करें और QR कोड इमेज अपलोड करें।
स्टेप 6c — वैकल्पिक अपलोड: Educational CMS UPI QRUpload — सिर्फ़ अगर आप कोर्स बेचने की योजना बनाते हैं: Educational CMS → Payment Settings टैब → Dedicated UPI — ऊपर वाले क्लाइंट-पेमेंट QR से अलग एक QR कोड, ताकि कोर्स-फ़ीस का पैसा advisory-फ़ीस के पैसे से अलग ट्रैक हो।
7
टेलीग्राम और कम्युनिकेशन चैनल्स कॉन्फ़िगर करें
Settings → Channel Configuration: Telegram के लिए bot token + webhook + group mapping; वैकल्पिक रूप से WhatsApp Business और आपका अपना Resend ईमेल sender।
8
अपना पहला Plan बनाएं
Plans पेज — category, segment, price, duration। साइनअप पर क्लाइंट को बिल्कुल यही दिखता है।
9
क्लाइंट्स ऑनबोर्ड करें
अपना रोस्टर बनाने के दो तरीके:
स्टेप 9a — नए साइनअप — Client Master (Logs) में मैन्युअली क्लाइंट जोड़ें और अपना public signup URL शेयर करें; फिर हर क्लाइंट अपना agreement sign करता है, KYC पूरा करता है, और pay करता है।
स्टेप 9b — अपलोड: मौजूदा क्लाइंट्स इम्पोर्ट करेंUpload — Data Migration पेज: अपने पुराने सॉफ़्टवेयर से CSV/Excel एक्सपोर्ट (क्लाइंट्स, प्लान्स, और historical payments), column-mapping स्टेप के साथ।
स्टेप 9c — वैकल्पिक अपलोड: साइंड Agreement PDFUpload — Client Master → Manage ▾ → Upload Signed (16-page) — किसी क्लाइंट का असली Digio Aadhaar-OTP साइंड agreement PDF (Digio से ईमेल पर मिला हुआ पूरा document) जब भी अपने आप capture नहीं हुआ हो, मैन्युअली अटैच करें।
10
लाइव जाएं — Trade Dispatch शुरू करें
Trade Dispatch से अपनी पहली recommendation भेजें — आपकी प्रैक्टिस अब RA OS पर पूरी तरह लाइव है।

1Sign up your organization

Go to the B2B signup page. Verify your email with a one-time code, set a password, then fill in your organization profile: name, SEBI registration number, BSE enlistment number, desired subdomain, and support contact.

Any real, working email address is accepted — including free personal providers like Gmail, Yahoo, or Outlook. You'll receive a one-time code at this address to verify it before you can continue.

2Upload verification documents

You'll be asked to upload:

You can add or remove any of these documents later too, from Settings → Verification Documents — you're not locked to what you submit at signup.

3Wait for approval

A platform reviewer checks your submitted documents and either approves or rejects your organization. You'll be able to log in once approved.

4Set up your Organization Profile

In Settings → Organization Profile, fill in your name, SEBI reg no, BSE enlistment no, logo, tagline, and brand color — this is what your own clients see on your public landing page and in emails.

Tip: use "Auto-fill from a website or file" (or the same feature on the Legal & Compliance Documents page) — upload a document like your SEBI certificate and AI will try to extract these fields for you to review before saving.

Investor Charter (Welcome Kit): Settings → Investor Charter (Welcome Kit) — upload your own signed SEBI Investor Charter PDF once, and it's attached automatically to every new client's Welcome Kit email and dashboard from then on.

5Your own credentials (Digio, CVL KRA, Razorpay, PaRRVA, Resend)

Compliance rule for B2B tenants: client KYC/e-sign must run on your own vendor accounts — the platform's shared account is for the default org only.

Every integration below lives in Settings. Leave a field blank to keep using the platform shared default (only until you configure your own — B2B tenants should plan to use their own accounts).

Sign Agreement Digio / consent-click KYC CVL KRA / manual Payment Razorpay / Valid UPI Welcome Kit Resend email + Telegram
What to configureWhere (Admin page)What to fill in / Why
Digio (Aadhaar OTP e-sign)Settings → Your Own Digio CredentialsClient ID, Client Secret, Webhook Secret — so clients sign under your own Digio account, not the platform's shared account.
CVL KRA (automated KYC lookup)Settings → Your Own CVL KRA CredentialsAll 6 required together: Username, Password, POS Code, Base URL, API Key, AES Key — partially filled = shared default fallback.
Razorpay (client payments)Settings → Your Own Razorpay AccountKey ID, Key Secret, Webhook Secret + register webhook URL in Razorpay Dashboard (payment_link.paid, payment.captured, payment.failed).
PaRRVA (trade submission + public performance)Settings → Your Own PaRRVA Credentials4 fields: Enrolment ID, Password, Auth URL, Trade Base URL — so Trade Dispatch submissions are filed under your own enrolment.
Digio webhookSettings → Your Own Digio CredentialsClient ID, Client Secret, Webhook Secret, optional Base URL override.
Resend (transactional email)Settings → Email (Resend) (API: /api/settings/email-config)Your own Resend API key + verified email_from sender — so Welcome Kit, OTP, and alert emails go out under your own name.
Agreement PDFSettings → Agreement / MITC PDF TemplateYour own reviewed client agreement — both Digio and consent-click signing use this same file.
Broker (Live Performance Tracker, optional)Settings → Broker Connection (Performance Tracker)Connect Zerodha, Upstox, Angel One, Fyers, or Dhan for a live, view-only P&L on Trade Dispatch. Turn on Daily Auto-Login right below it and the server refreshes your token every morning — no manual reconnect.
Alternative zero-vendor-cost path: consent-click signing + manual KYC + Valid UPI — you can switch between these at any step, independently for each client.

6Telegram, WhatsApp & email channels

Settings → Channel Configuration — trade calls, the Welcome Kit, and your inbox all connect from here.

Screenshot placeholder: Settings → Channel Configuration — Telegram bot token + group mapping UI.

7Set up how clients pay you

In Settings, choose which payment method(s) your clients see:

Comfortable setting up your own credentials via this Settings portal? There's no extra cost to get started. Prefer we do the entire setup for you, end-to-end? That's available as an add-on — a one-time fee of ₹9,999 — see Add-ons on the pricing page.

Valid UPI is part of the exact same fully-automated onboarding as any other payment method — the one difference is a single manual check, since UPI has no bank API to auto-confirm the money landed. A Google Apps Script watches your Gmail for Canara Bank credit-alert emails and auto-verifies most Valid UPI payments on its own; when that alert doesn't fire, you verify it yourself — confirm the payment landed in your own bank account, then click "✓ Verify Payment," either from the dedicated Verify Valid UPI page (sidebar, directly below Client Master (Logs) — every pending UPI payment listed newest-first, so you never have to search for a name) or from the same client's row in Reports → Prospects, where an unverified UPI payment shows up immediately. Once verified, activation, the Welcome Kit email, and the Telegram invite all fire automatically — exactly like a Razorpay/gateway payment.

Valid UPI बिल्कुल उसी fully-automated onboarding का हिस्सा है जो किसी भी दूसरे payment method का है — सिर्फ़ एक फ़र्क़ है: एक manual check, क्योंकि UPI के पास पैसा पहुँचने की पुष्टि करने वाला कोई bank API नहीं होता। एक Google Apps Script आपके Gmail पर Canara Bank के credit-alert ईमेल्स को track करता है और ज़्यादातर Valid UPI पेमेंट्स अपने आप वेरिफ़ाई कर देता है; जब वह alert नहीं आता, तो आप खुद वेरिफ़ाई करते हैं — पहले अपने बैंक अकाउंट में पेमेंट कन्फ़र्म करें, फिर "✓ Verify Payment" पर क्लिक करें — या तो dedicated Verify Valid UPI पेज से (sidebar में, Client Master (Logs) के ठीक नीचे — यहाँ हर pending UPI पेमेंट newest-first दिखता है, ताकि नाम ढूँढना न पड़े), या उसी क्लाइंट की row से Reports → Prospects में, जहाँ unverified UPI पेमेंट फ़ौरन दिख जाता है। वेरिफ़ाई होते ही activation, Welcome Kit ईमेल, और Telegram invite — सब अपने आप हो जाते हैं — बिल्कुल Razorpay/gateway पेमेंट जैसा।

On the Legal & Compliance Documents page, upload your own reviewed Disclosures, Terms & Conditions, MITC, Refund Policy, Grievance Redressal, Privacy Policy, AML Policy, and Internal Policy. These are attached automatically to your clients' Welcome Kit emails once uploaded.

RA OS does not write this content for you — these must be your own reviewed documents, since you are the registered Research Analyst responsible for them.

9Subdomain, custom domain & website content

The Domain & Microsite and Website Content pages — your public site's URL, footer links, and text blocks.

Every organization gets a free subdomain by default (yourname.os.profitxresearch.com style). For a custom domain (whitelabel), enable the add-on in Settings → Add-ons, then follow Domain & Microsite — connecting a real domain needs DNS steps with your registrar and a manual Vercel step with the platform owner.

Website Content page lets you edit footer links and editable text blocks on your public site without code. Content Hub (platform owner org only) manages profitxresearch.com marketing CMS — B2B tenants use Website Content for their own microsite.

Logo/favicon upload: Settings → Branding — upload the actual image file, don't paste a URL.

10Add plans and clients

Create your subscription plans in Plans, then either add clients manually in Client Master (Logs), or bring in an existing roster from prior software using Data Migration (clients, plans, and historical payments can all be imported).

When a client joins, they go through a sequential Sign Agreement → KYC → Payment flow. You control which method is used for each of the first two steps — this is entirely your own choice as the registered RA, not something RA OS imposes on you:

Combine Valid UPI (step 7) with consent-click signing and manual KYC and there is effectively no external vendor cost for onboarding a client — you can still switch to the paid/automated options for any client, at any time. Every signed agreement (regardless of method) can be bulk-downloaded as a ZIP with an Excel index from Reports → Bulk Signed Agreements, for your own audit records.

On the KYC step, a client also selects their own Client Category — Individual (Resident), NRI, FPI, or Institutional/Company. NRI/FPI clients upload a Passport + overseas address proof alongside their normal PAN/DOB check; Institutional clients (Company/Trust/HUF/Partnership/etc) upload entity registration documents instead of a personal PAN/DOB and are routed to manual review, since a company has no date of birth. This also fixes your H1/H2 periodic report's "Clients And Fees" schedule, which now correctly splits client counts and fees across these categories instead of assuming every client is a Resident Individual.

11Client onboarding — admin walkthrough

Add clients from Client Master (Logs), share the signup link, and track every step — why: SEBI's audit trail requires every stage to be recorded.

  1. Create your Plans first — category, segment, price, duration. These are exactly what clients see at signup.
  2. Client Master (Logs) → Add Client: email, plan, optional payment link. Why: a pre-added client is auto-linked when they sign up.
  3. Send the client your public signup URL (yoursubdomain.../client/signup or your custom domain).
  4. Watch the status badges on the CRM row: Agreement (Digio pending/signed or consent-click), KYC (CVL processing/verified or manual), Payment (Razorpay auto or UPI pending).
  5. UPI verify: when a client submits a UTR, the CRM shows payment pending — you verify it manually and activate the client. Why: Valid UPI has no automatic bank confirmation.
  6. Once active, the Welcome Kit (Resend email + Telegram) goes out automatically — invoice, signed agreement, and policies attached.
  7. Upload Signed (16-page): click Manage ▾ on any client's row to reveal this button alongside View Signed PDF and ⬇ Download Full-KYC PDF. RA OS's own record of a Digio Aadhaar-OTP signature is just a 1-page completion certificate — this button lets you manually attach the client's real full signed agreement PDF (the 16-page document Digio emails to you) so it shows correctly in View Signed PDF and in your Reports → Bulk Signed Agreements export. Choose the PDF file; it's stored against that client's record, replacing whatever was there before.
    Upload Signed (16-page): किसी भी क्लाइंट की row पर Manage ▾ क्लिक करें — यह बटन View Signed PDF और ⬇ Download Full-KYC PDF के साथ दिखता है। Digio Aadhaar-OTP signature का RA OS का अपना record सिर्फ़ 1-page का completion certificate होता है — यह बटन आपको क्लाइंट का असली पूरा signed agreement PDF (Digio से ईमेल पर मिलने वाला 16-page document) मैन्युअली अटैच करने देता है, ताकि वह View Signed PDF और आपके Reports → Bulk Signed Agreements export में सही से दिखे। PDF फ़ाइल चुनें; यह उस क्लाइंट के record में save हो जाती है, पहले जो कुछ भी था उसकी जगह लेकर।
  8. Use the Resend to Customer dropdown to resend the Welcome Email or Telegram link — this does not trigger a new charge.
  9. Telegram links always mint fresh — a resend never reuses a stale cached invite link, so it can't silently go dead. If a Welcome Kit or Telegram notification ever fails to send, it now self-heals automatically in the background — no admin click needed to retry it.
  10. Telegram join detection: if an active client's onboarding timeline shows a Telegram link was sent but they haven't actually joined the group after a reasonable window, you'll see a 🔔 bell alert and it's flagged on their Client Master onboarding-journey timeline — so a delivery gap never goes unnoticed until a client complains.

12Daily operations (Dispatch, Compliance, Comms)

Your day-to-day work — sending trades, updating compliance, and client communication.

13Team, Moderator & MFA

Invite staff from the Team & Access page; secure your own account under Settings → Security (MFA).

14Trade Dispatch & scheduled dispatch

Send recommendations from Trade Dispatch — targeting all clients, a category, or specific individuals. Use the Schedule panel to queue a dispatch for a future date/time (cron sends automatically). Use Compliance Tracker, Complaints, and Public Appearance Master for regulatory record-keeping.

15PaRRVA Verified Performance on site

Once you submit trade calls to PaRRVA (Trade Dispatch's Intraday/Single Stock/Derivative segments — see the earlier step), you can show your SEBI PaRRVA-verified performance directly on your own public site. Enter your own PaRRVA Enrolment ID/Password under Settings → Your Own PaRRVA Credentials, then turn on Settings → PaRRVA Verified Performance — Public Display.

Off by default for every organization — nothing appears on your site until you switch it on. Real performance figures also only appear once PaRRVA has enough trade history to report (typically a few months after your first submissions) — until then, your site shows an honest "building our verified track record" message instead of a blank or broken section.

16Blog & Social Media Auto-Posting — getting your developer credentials

Blog (Communication Center → Write a New Blog Post) — publish posts on your own domain/subdomain. Naming a security, or using market price data from within the last 30 days, anywhere counts as a research recommendation under SEBI rules — check the "count as a Public Appearance" box when it applies and it's logged automatically, no separate step.

Communication Center → Social Media Auto-Posting lets you connect unlimited accounts per platform (Facebook, Instagram, LinkedIn, Twitter/X, YouTube, Telegram) and post manually, on a schedule, or from an AI-drafted suggestion you approve. Every published post is automatically logged as a Public Appearance record, ready-made for your Reports exports (H1/H2 periodic and Annual Compliance Audit).

Same one-time external step already required for Digio/CVL KRA/Razorpay: RA OS cannot generate these credentials for you — each platform requires you to register your own developer app directly with that platform. Below is exactly how, for each one.

Facebook (Page posts, Reels, Stories)

  1. You need an existing Facebook Page (not a personal profile) for your practice.
  2. Go to developers.facebook.com → My Apps → Create App → choose type "Business".
  3. In the app dashboard, add the Facebook Login and Pages API products.
  4. Under Tools → Graph API Explorer, select your app, select your Page, and generate a Page Access Token with the pages_manage_posts and pages_read_engagement permissions.
  5. Note your Page ID (visible on your Page's About section, or via the Graph API Explorer).
  6. In RA OS: Settings → Social Media Auto-Posting → Connect Account → Facebook → paste the Page Access Token and Page ID.

Instagram (feed, Reels, Stories)

  1. Your Instagram account must be a Professional (Business) account, linked to the same Facebook Page above.
  2. Reuse the same Meta App from the Facebook steps — no separate app needed.
  3. In Graph API Explorer, find your Instagram Business Account ID by querying your linked Page: GET /{page-id}?fields=instagram_business_account.
  4. The same Page Access Token from the Facebook steps works for Instagram too.
  5. In RA OS: Connect Account → Instagram → paste the Page Access Token and IG Business Account ID.

LinkedIn (Organization posts)

  1. You need an existing LinkedIn Company Page for your practice, and you must be an admin of it.
  2. Go to linkedin.com/developers/apps → Create App, linking it to your Company Page.
  3. Request access to the "Share on LinkedIn" / Community Management API product (LinkedIn reviews this request — approval can take a few days).
  4. Once approved, generate an Access Token via LinkedIn's OAuth flow (3-legged OAuth, w_organization_social scope).
  5. Note your Organization URN — format urn:li:organization:XXXXXXX, visible in your Company Page's admin URL.
  6. In RA OS: Connect Account → LinkedIn → paste the Access Token and Organization URN.

Twitter/X

  1. Go to developer.x.com → apply for a developer account (free tier available, has a monthly post-write limit — check current limits before relying on this for volume).
  2. Create a Project and an App inside it. Under the app's User authentication settings, set permissions to Read and Write.
  3. Under Keys and tokens, generate: API Key, API Secret, Access Token, and Access Token Secret (all 4 are required — regenerate Access Token/Secret AFTER setting Read+Write permission, or they'll be read-only).
  4. In RA OS: Connect Account → Twitter/X → paste all 4 values.

YouTube

  1. Go to console.cloud.google.com → create a new Project.
  2. Under APIs & Services → Library, enable the YouTube Data API v3.
  3. Under APIs & Services → Credentials → Create Credentials → OAuth client ID (type: Desktop app) — note the Client ID and Client Secret.
  4. Complete Google's OAuth consent flow once (as the channel owner) to get a Refresh Token — the standard way is Google's own OAuth 2.0 Playground: enter your Client ID/Secret in its settings, authorize the YouTube Data API v3 scope, and exchange for a refresh token.
  5. In RA OS: Connect Account → YouTube → paste the Client ID, Client Secret, and Refresh Token.

Telegram (as a marketing/broadcast channel)

  1. Message @BotFather on Telegram → /newbot → follow the prompts to get a Bot Token.
  2. Use a separate, new bot for this — do not reuse your trade-dispatch bot token from Section 6, so a compromised marketing-post credential can never touch client trade delivery.
  3. Add this new bot to your marketing channel/group and promote it to Admin.
  4. Get the Chat ID — the simplest way is to forward any message from the channel to @userinfobot, or check the bot's own getUpdates API response after posting once manually.
  5. In RA OS: Connect Account → Telegram → paste the Bot Token and Chat ID.
This exact same process applies whether you are the default (B2C) organization or a B2B tenant — the Settings page, the Connect Account form, and every step above are identical for every organization on RA OS. Only the credentials themselves are yours alone, never shared with any other organization.

17Educational CMS — Courses & Mentorship

A separate, lighter offering from your regular trade-recommendation client roster: build and sell educational Courses (video, PDF, image, and link lessons, organized into modules) to your own students. Enable it from Settings → Add-ons (₹299/month — free for the default org).

Course revenue you collect from your own students still feeds into RA OS's existing revenue-share reporting (Platform Billing), same percentage as your regular client-fee revenue — but the money itself is never collected by RA OS; it always lands directly in your own Educational Billing account.

18Your plan & pricing — revenue-share model

RA OS does not charge a flat monthly SaaS fee. Instead, the platform fee is a small percentage of your own advisory revenue — you only pay RA OS when you are actually earning from your own clients. The percentage and the minimum monthly floor both depend on which plan you pick (Basic/Professional/Growth/Scale/Enterprise); each month you pay whichever is higher — the percentage or the floor, never both added together. Each plan is also capped by your active (paid) client count — once you reach your plan's cap, you'll need to upgrade to add more clients. Fully customizable at every level, at no extra charge.

PlanActive clientsPlatform feeMinimum monthly fee
BasicUp to 201.5% of your advisory revenue₹499 / month
Professional21–1001.9% of your advisory revenue₹1,499 / month
Growth101–3002.30% of your advisory revenue₹4,999 / month
Scale301–5002.6% of your advisory revenue₹5,999 / month
Enterprise500+ (no cap)2.9% of your advisory revenue₹11,999 / month

Included at every tier, no extra cost: the full admin dashboard (Client Master, Trade Dispatch, Compliance Tracker, Complaints, Reports, Settings, Team & Access), your own client portal on your own subdomain, PaRRVA trade submission + verified public performance display, Social Media Auto-Posting (unlimited connected accounts, manual/scheduled/AI-drafted posts, automatic Public Appearance compliance logging), unlimited plans/clients/trade dispatches, and the free self-service Data Migration importer.

18A. Market Analysis Software (one-time ₹99,999, lifetime support)

This is the tool the platform's own Research Analyst practice uses to prepare recommendations, and it is available to your organization as a one-time purchase. There is no subscription and no renewal — you pay once and it stays yours, with lifetime support.

What it unlocks:

Why auto-fill matters more than convenience. NSE revises lot sizes, and PaRRVA rejects an advice that carries a stale lot. Auto-fill takes the lot and the expiry from the live contract master every time, so a rejected submission cannot be caused by a number that was correct last month. Typing a contract by hand is also where a wrong strike or a wrong expiry reaches a real client.

Without this add-on, Trade Dispatch keeps working in full — you enter the contract, the lot and the prices yourself, and dispatch and PaRRVA submission behave exactly as before. Only the automatic filling and the live analysis boards are switched off.

You bring your own broker. The add-on is the software; the market data comes from a broker account in your own name — Fyers or Zerodha (Kite Connect). That is deliberate and is what keeps it lawful: each RA sees data from their own broker account, and no exchange feed is redistributed from here to anyone. Your broker may charge its own API fee (Zerodha's Kite Connect is billed monthly by Zerodha, not by us). Connect it under Settings → Broker Connection.

Enable it from Settings → Add-ons. Payment is collected once through the platform's own billing account; the feature switches on as soon as the payment is confirmed and never lapses after that.

Optional paid add-ons (Settings → Add-ons, toggle on only what you need): Whitelabel custom domain (free to enable, you bring your own domain), Scheduled automatic backups (₹299/month), Trade Reports → Google Drive sync (₹299/month), NISM-XV + CPE Exam Prep for your team (₹499/year — note: the RA-XV main exam mock test and its CPE renewal mock test are now free and public for anyone at /nism-prep.html, unlimited retakes, no login needed; this paid add-on additionally gives your team full study-module access and the complete question bank), Automatic/Scheduled Trade Dispatch (₹299/month), Market Analysis Software — Market Watch Live Signal Analysis + Trade Dispatch auto-fill (one-time ₹99,999 with lifetime support — pay once, it never expires and never renews; see Section 18A below), Client Auto-Pay (₹299/month), Educational CMS — Courses & Mentorship (₹299/month, see Section 17 above), Hosting + Domain + Email (₹6,035 for the 1st year* — renewal from Year 2 onward is priced as per actual GoDaddy renewal rates, typically higher). Exact current pricing for each is always shown live on the Add-ons page in your dashboard.

Prefer a done-for-you setup instead of doing it all yourself? Self-service setup — including technical help — is completely free. See the "We Set It Up For You" add-on (Section 7 above / Settings → Add-ons) — a one-time ₹5,999 fee covers your full credential setup and data migration, done for you end-to-end, only if you'd rather not do it yourself. This is never mandatory, and every add-on above stays purely opt-in.

19Platform Billing & Data Migration

The Platform Billing page shows your current client-count tier, your computed revenue-share fee for the period, and your full invoice/payment history — there is no separate plan to "subscribe" to, since your fee is calculated automatically from your own paid-client count each period (see Section 18 above). On the Data Migration page, import clients/plans/payments as a CSV from your prior software — a column-mapping step is included; migrated payments are excluded from the revenue-share calculation. This self-service import is free and always available.

Prefer not to do the migration yourself? The same "We Set It Up For You" add-on (Section 7 above) covers this too — a one-time ₹9,999 fee for the platform team to complete your full data migration and account setup end-to-end. This is entirely optional, never mandatory — you can always do all of it yourself for free using the page above.

GST & Company Details (optional). Settings → GSTIN for invoices; company name/CIN for Pvt Ltd/LLP.

Plan segments, PaRRVA categories, and where a recommendation lands

A plan's segment is not a label — it is the routing decision. Every segment files under one of PaRRVA's own five advice categories, and the same segment decides which Telegram group the advice goes to and which clients see it on the portal and in the app. One value, three consequences.

PaRRVA categoryPlan segments that file under it
IntradayEquities (Intraday)
Single StockEquities (Delivery / Positional)
DerivativeIndex Options · Stock Options · Futures Combo · Options Combo
PortfolioModel Portfolio
StrategyStrategy (multi-leg)
Outside PaRRVACommodities Combo · High Conviction — real, sellable plans that PaRRVA has no category for, so they are delivered to clients but never submitted
Creating the plan is the whole setup. The dispatch screen's category list is built from the segments your own plans actually use — so the day you create a Model Portfolio plan, "Model Portfolio" appears there by itself, clients who buy that plan start seeing published portfolios on the portal and in the app, and publishing one submits it to PaRRVA under its Portfolio category. There is no separate switch to turn on.

Strategy advice routes by what it is written on. A strategy or option on an index (NIFTY, BANKNIFTY, FINNIFTY, SENSEX and the rest) goes to the index group; one on a single stock goes to the stock group; a strategy with an index leg and a stock leg goes to both, because it genuinely belongs in both.

This is per tenant, not shared. Your plans, your clients, your Telegram groups and your own PaRRVA credentials — a recommendation you dispatch reaches only your own clients and is filed under your own PaRRVA enrolment. Another tenant on the same platform can name and price their segments completely differently; the PaRRVA category underneath each one stays fixed, which is what keeps the regulatory classification correct no matter how the plans are packaged.

20Bug report & fix approval

Sidebar → Bug Report (Platform B2B section) — upload a screenshot, add a description, and track your ticket.

From Bug Report in your admin sidebar (/admin/support-tickets.html): describe the issue, attach up to 5 screenshots (PNG/JPEG/GIF/WEBP), submit. Your org only sees its own tickets; the platform owner sees all.

Fix workflow (human-approved — no auto-deploy):
pending approval → approved for fix → in progress → fixed → closed
Approved tickets record a fix_approved_at timestamp — work begins in a Cursor/Claude agent session using the ticket ID; code is never deployed automatically.

21Admin portal — what every page does

The sidebar tabs you'll see — a B2B tenant gets the same practice tabs as a B2C admin, plus a Platform (B2B) section (User Guide, Bug Report, Billing, etc.).

Sidebar tabWhat it does
DashboardOverview — pending actions, stats, quick links
Trade DispatchSend/schedule trade calls; PaRRVA submit
SettingsProfile, credentials, channels, payments, MFA, notifications
Client Master (Logs)Add/edit clients, track onboarding, UPI verify
Sales CRM (Leads)The prospect side — cold-call lists, call logging, follow-up queue, team assignment, Excel import/export, cross-sell against existing clients (Section 22)
PlansSubscription plans & categories
Compliance TrackerFiling calendar, audit kit, vault, periodic report
ComplaintsInvestor complaint register
Legal & Compliance DocumentsUpload T&C, disclosures, policies
SEBI/BSE CircularsReview incoming circulars
Communication CenterBulk messages to clients
WhatsApp / Telegram InboxTwo-way messaging
Public Appearance MasterMedia appearance log
Client Activity LogCross-client event feed — signups, e-sign, KYC, payments, Welcome Kit/Telegram, portal logins
Educational CMSCourse/module/lesson builder, student enrollments, dedicated payment gateway
ReportsExports, bulk agreements, backups
Website/App EnquiriesLeads captured from your public site/app contact forms, tracked New/Contacted/Closed
Website ContentFooter links, CMS text blocks
Team & AccessInvite admin/moderator
Bug ReportScreenshot bug tickets
Add-onsWhitelabel, scheduled backups, etc.
Platform BillingYour revenue-share tier, computed fee & invoices
Data MigrationImport from prior software
Domain & MicrositeSubdomain/custom domain setup
User Guide / FAQThis guide + full FAQ (external links)

Interactive tour: b2b-admin-tour.html — har page slide-by-slide.

22Sales CRM (Leads) — what to look at, and what it means

Sidebar → 📞 Sales CRM (Leads). This is the prospect side of your practice: the people your team is calling who have not paid you yet. Client Master (Logs) is the other side — your existing paying clients. A lead becomes a client only through the normal Sign → KYC → Payment flow; the CRM never creates a client behind that flow's back.

Your responsibility, not RA OS's. There is deliberately no auto-dialer and no bulk SMS/WhatsApp/email in the Sales CRM, and there never will be. It records what a person on your team did, after the fact — it never contacts anyone by itself. Cold calling and bulk messaging in India carry TRAI/DND (TCCCPR) and DPDP obligations, and you are a SEBI-registered firm. RA OS does not screen numbers against the DND registry: DND and consent compliance for every number you call or upload is yours. Keep proof of consent for any number that is not already your own client, and honour opt-outs immediately.

Open it in the morning — what to look at, in order

The Dashboard tab is a row of counters. Read them in this order, not left to right:

Look atWhat it tells youWhat a bad number looks like
Overdue (red)Follow-ups whose promised date has already passed. Every name here is a person you told "I'll call you back" and did not.Anything above zero at the end of the day — and worse, a number that grows week on week. This is the one you try to finish every day at zero.
Follow-ups Due (amber)Due today. This is today's call list. Open the Follow-ups tab: Overdue on top, Due Today below — work straight down.More due today than the team can physically call. Follow-ups are being scheduled faster than they are being worked.
Calls Today / Connected TodayHow much work happened, and how much of it reached a real human.Calls high but Connected near zero — the list or the calling time is wrong, not the effort. Look at the numbers, not the caller.
NewLeads nobody has touched even once.Growing while Calls Today stays flat — you are importing faster than you are calling. Stop importing, start calling.
Interested (Interested + Callback)Your live pipeline — the people a conversion could actually come from.Near zero. It means no conversions are coming next month, whatever this month's revenue says.
Conversions (Month), Revenue (Month)The outcome.Read these last. They are the result of the five rows above, not something you can work on directly.

Below the counters, the Conversion Funnel by Source shows total → contacted → interested → converted → lost, and a conversion % per source. A source with plenty of leads and a 0% conversion rate is calling time being spent for nothing.

What each lead status means, and when to move a lead to it

StatusWhat it meansWhen to set it
NewIn the CRM, never called.Set automatically when a lead is added or imported. Never set by hand.
ContactedYou have tried at least once. It means "attempted", not "spoke to".Set automatically the first time any call is logged on a New lead — even a no-answer.
InterestedYou actually spoke, and they want to know more.Only after a real conversation. Your pipeline health is read from this number, so don't use it for "sounded polite".
CallbackThey asked you to call at a specific time.When you use it, always set a Next follow-up date in the same save — otherwise the lead never appears in anyone's queue again.
Not InterestedThey said no. A clear refusal.After a real refusal. Stop calling.
LostWent cold, bought elsewhere, or unreachable after repeated attempts.Kept separate from Not Interested on purpose: one says you are being refused, the other says you are failing to reach people. Very different problems, very different fixes. Record the "Lost / Not-interested reason" — that field is where next quarter's pitch corrections come from.
ConvertedThey became a real paying client.You cannot type this. It is only ever set by the Convert to Client action (below), which requires a real client record. That is deliberate — it means "conversions this month" is a number nobody can inflate.

Converted, Not Interested and Lost drop out of the follow-up queue automatically — a closed lead never keeps resurfacing in a calling list.

What a telecaller sees vs what you see

The Sales CRM reuses your existing Admin/Moderator roles — there is no separate permission system to learn. It is the same page, filtered:

Admin — the sales managerModerator — the telecaller
Leads visibleEvery lead in your organisationOnly the leads assigned to them
Assign / reassignYes, single or in bulkNo — cannot push their own leads onto a colleague, or take a colleague's
Import / Export tabYes, plus Import History and the Duplicate CheckNot shown
Delete a leadYesNo
Revenue & Team LeaderboardYes — the whole floor's numbersNo — their own call and conversion counts only

Why they differ: a telecaller should be able to work their own book fully — log calls, move statuses, clear their queue, convert a lead — without being able to move work around or see everyone's money. Nothing breaks for them; the revenue section simply is not there.

Logging a call — the one habit that matters

Open any lead to get its drawer, then Log a Call: Outcome (Connected / No Answer / Busy / Wrong Number / Switched Off), duration, "Move status to", "Next follow-up", and what happened on the call. One save does all of it — the call is recorded, the status moves, the follow-up is scheduled, and the counters update.

If you promised to call back, set the Next follow-up date on the same save. A lead with no follow-up date never appears in anyone's queue — that is by far the most common way a genuinely interested prospect is quietly lost.

Call duration is self-reported. RA OS has no telephony integration and deliberately isn't getting one, so treat it as an honest manual note, not a measured figure.

Every lead also has an Activity Timeline — an append-only record of every call, note, status change, reassignment, import and conversion, with who did it and when. For a SEBI-registered firm this matters: "who moved this lead to Converted, and when" must always be answerable.

Converting a lead into a client

There are two kinds of sale, and they convert differently.

Convert to Client (a subscription sale) creates the client through your normal Client Master flow — the same Add Client that page uses, including your plan and client-cap checks — then links this lead to it so the sale is attributed to the right telecaller. Sign, KYC and payment still happen afterwards exactly as usual; nothing is skipped.

Convert to Course Sale (an Educational CMS sale) works differently, and the difference is deliberate. A course buyer becomes an Educational CMS student — a separate, lighter record with no PAN and no KYC. They are not an advisory client and are never counted as one. The student must sign up themselves: the sign-up needs a password only they choose, an email code only they can read, and a mentorship agreement only they can sign, so nobody can create that record on their behalf. The panel gives you a course sign-up link with their details pre-filled — send it, and once they have signed up and paid, come back and Link Course Sale to attribute it. Linking never creates a student, an enrolment or a payment; it only connects two records that already exist.

A single sale can only be attributed once — if another lead is already linked to that client or that course student, the link is refused rather than crediting the same money to two telecallers.

Take the payment through RA OS (payment link or Valid UPI verification for subscriptions, the Educational CMS checkout for courses) so it lands in a ledger. A sale collected offline and switched to Active by hand records no payment — it will show as ₹0 in the CRM and be missing from your own platform revenue-share invoice.

Importing a list of prospects from Excel — and what happens to duplicates

Import / Export tab (admin only). Download the Sample Template first: a blank sheet with exactly the headers the importer understands, plus a "How to use" sheet.

How a duplicate is decided: by mobile number, within your own organisation only. The number is reduced to its digits first, so +91 98765 43210, 098765-43210 and 9876543210 are all treated as the same person. A number already in your CRM is skipped — nothing is created and nothing is overwritten — so re-uploading the same sheet is safe rather than destructive. The rule is enforced by the database itself, not just checked in code, so two people uploading the same sheet at the same moment still cannot create two copies. One RA's leads are never compared against another RA's: every organisation's CRM is entirely its own.

This is not just tidiness — two telecallers ringing the same person from two rows is a real DND and annoyance problem, not a cosmetic one.

Reading the import result:

NumberWhat it meansWhat to do
InsertedNew leads created.Assign them and start calling.
SkippedA real duplicate — that number is already in your CRM, or appears twice in the same sheet.Nothing. Your sheet simply overlaps what you already have. Harmless.
FailedAn unusable row — no name and no phone, or a phone number that isn't a real number.Fix the sheet and re-upload. A high Failed count means the file itself is broken.

The result panel also lists the first rejected rows with the reason for each, so you can see exactly which row dropped and why.

Undo: Import History lists every upload, and you can delete a whole batch — but only while none of its leads have been called. Once even one call is logged against a lead from that batch, the bulk delete is refused, because deleting the lead would destroy a real call record. Remove those individually if genuinely needed.

Duplicate Check (same tab) shows two things: leads sharing an email address, and — the one to act on immediately — leads whose mobile number already belongs to one of your existing clients. That means your team is about to cold-call somebody who already pays you. Clear those before the calls go out.

Adding a lead by hand behaves the same way: if the number already exists, you get a message naming the existing lead instead of a silent second copy.

Cross-Sell — working your existing clients

The Cross-Sell tab lists your active and expired clients as candidates for a higher plan, straight from Client Master — the CRM never copies a client into its own tables, so there is never a second, worse copy of a real client record. Opening an opportunity creates a thin record pointing at that client; calls against it are logged in exactly the same way as a lead call, so one leaderboard covers all of your team's calling work.

The revenue figure — what it counts, and what it does not

The Revenue Breakdown (admin only) is read live from two ledgers, and the Sales CRM stores no money figure of its own — there is deliberately no "deal value" field anywhere in it, so nobody can type a number that reaches a revenue view.

What it counts:

Every breakdown — by payment mode, by month, by lead source — splits Subscription and Course side by side with a combined total, so you can always see which of the two businesses a number came from. There is also a "Course" table showing revenue per course, alongside the "Plan" table for subscriptions.

What it does NOT count — just as important:

Refunds — and one honest gap. "Net (matches invoice basis)" is the figure directly comparable to your invoice; "Gross (before refunds)" and "Refunded" sit next to it, and per-telecaller figures on the leaderboard are net of refunds, so nobody is credited for money the business gave back. The gap: subscription refunds are netted out, course refunds are not — course enrolments have no refund field at all, so a refunded course sale still counts in full here and on your platform revenue-share invoice. Both numbers are wrong in the same direction, which is why the page states it plainly instead of quietly absorbing it.

The one warning to act on. If you see "N converted lead(s) have no payment record and no paid course enrolment", the usual cause is a sale collected offline (cash or bank transfer) and then switched to Active by hand in Client Master, which writes no payment row. That money is missing from this dashboard and from your own platform revenue-share invoice. Record it through RA OS so both numbers are right.

Two more numbers worth reading together: Payments / Enrolments matched against your conversion count (conversions climbing while matched payments and enrolments don't means sales are being marked converted without money actually arriving through RA OS), and Revenue by Lead Source — which answers the question a lead count never can: which source actually turns into money, and therefore whether cold calling is worth it next to referrals.

Finally, on the Team Leaderboard: a telecaller with plenty of calls but no conversions is a coaching or script problem, not an effort problem. Read their call notes before you read the leaderboard.

23. Frequently asked questions

Do I need my own Digio/CVL KRA account?

Recommended for compliance — the shared platform account is only meant for getting started; a B2B tenant should configure their own.

Strongly recommended for B2B tenants — client e-sign and KYC must run under your own SEBI registration, not another RA's shared account. Settings has dedicated sections for each.

Does a bug fix deploy automatically?

No. The platform owner approves the ticket first; only then does an agent session implement the fix. This is a zero-downtime discipline — sacred flows (onboarding, payments, trade dispatch) are never touched without approval.

Can I use my own domain instead of a subdomain?

Yes — it's a paid add-on (whitelabel). Enable it in Settings → Add-ons, then follow the steps on the Domain & Microsite page.

Do I have to use Razorpay?

No — Valid UPI is a free alternative, and you can enable one or both. Custom/other payment modes may be added in future.

What happens if my documents are rejected?

You'll be notified and can re-upload corrected documents for another review.

Can I import my client data from another platform?

Yes — the Data Migration page accepts a CSV/Excel export from any prior software (clients, plans, and historical payments), with a column-mapping step so it works regardless of the source system's format.

How do I show my PaRRVA performance on my own site?

Enter your own PaRRVA credentials in Settings, then switch on the "PaRRVA Verified Performance — Public Display" toggle. It's off by default, and only shows real data once PaRRVA has enough trade history.

Is the NISM-XV / CPE mock test really free?

Yes — the RA-XV main exam mock test and its CPE renewal mock test at /nism-prep.html are fully public and unlimited: no signup, no login, no payment, and no cap on retakes. Each attempt draws a fresh random set of questions from the full bank. The paid NISM-XV + CPE Exam Prep add-on (Section 18) is only needed for full study-module access and the complete question bank for your team.


More questions? See the Full B2B FAQ (English/Hindi + PDF), the User Guide PDF, or contact the platform team.