Enterprise B2B channel sales app for Tata Power Solar shown across app screens
Back to our workChannel Partner CRM

The Tata Power partner app, wired into Salesforce

One Flutter app for Tata Power's rooftop solar channel partners. Onboarding, leads, orders, assets and inspections, all writing straight into the CRM.

203Dart files
37K+Lines of code
32Named routes
2Platforms
ClientTata Power Solar
PlatformsiOS and Android
BackendSalesforce Apex REST
ArchitectureFlutter and GetX
SectorRooftop solar
Websitetatapower.com/solaroof

01The challenge

The CRM was there. The partners could not reach it.

Tata Power's rooftop solar business runs on channel partners and retailers. Their side of it already lived in Salesforce, with no mobile way in.

01

No mobile KYC

Aadhaar, PAN and GST collection ran on paper and email.

02

Leads re-keyed later

Field leads never reached the CRM directly.

03

Three disconnected steps

Orders, installed assets and credit balance never met.

04

Inspections by phone call

Site reports came back ad hoc, with no structured checklist.

02What we built

A modular Flutter app on one authenticated line to Salesforce

GetX with a presenter and view per module, so routing, injection and state stay predictable across every feature.

FieldPartner app
AuthOAuth2 session
TransportDio and Apex REST
System of recordSalesforce
Step 01

Onboarding and KYC

OTP login, partner number lookup, then guided registration with document capture.

Step 02

Leads, opportunities, orders

Wired straight into the Salesforce dealer endpoints, with catalog and order tracking.

Step 03

Assets and inspections

QR and barcode asset registration, criteria checklists, credit balance, push notifications.

OTP login and encrypted local sessions carry one account model across both Retailer and CP Employee partner types.

03In the app

One home screen, six live modules

Every tile opens a module that reads and writes against Salesforce.

Tata Power Solaroof partner app home screen showing leads, opportunity, order tracking, asset installation, credit balance and place order tiles

Partner home

A partner lands on their live credit balance, then moves into whichever module the job needs. Onboarding runs once, the rest are used daily in the field, and all of them read and write the same Salesforce records the office is working from.

01OTP login

Retailer and CP Employee paths, resend timer, channel partner number lookup.

02Guided KYC

Aadhaar, PAN and GST capture with document upload, profile photo and consent.

03Leads and opportunities

List, add, edit and detail, synced to the Salesforce dealer endpoints.

04Catalog and orders

Browse products, place orders, follow sales orders through to delivery.

05Assets and inspections

QR and barcode registration, criteria checklists, supporting documents.

06Dashboard and team

Live credit balance, team management, push notifications, offline detection.

04Stack

One codebase, the CRM they already run on

No new system of record. The app is a client for the one that exists.

FlutterOne UI layer, both platforms
DartGetX modules, Freezed models
SalesforceThe system of record
OAuth 2.0Session and token handling

05Results

What shipped

A feature architecture large enough to carry the whole partner lifecycle.

203

Dart files in a modular GetX architecture

37K+

Lines of Dart

32

Named routes across every module

20

Type safe Salesforce response models

One Salesforce connected app gives our field teams a single place to work, instead of piecing it together across calls and paperwork.

Channel Partner Program, Tata Power
Salesforce

Integrated directly with the Apex REST layer

iOS and Android

One Flutter codebase for both platforms

Sandbox validated

Tested against the Salesforce sandbox before rollout

Have something similar in mind?

Let's connect your field teams straight into your CRM.

Tell us the systems your teams already run on and we'll bring the Flutter engineering to wire your field workflows straight into them.

Start a project