Assist_Design/docs/uat/appendix-cross-reference.md
2026-02-24 11:09:35 +09:00

237 lines
24 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cross-Reference Appendix
Quick-reference tables mapping Customer Portal features to their corresponding records in WHMCS and Salesforce. Use this when you need to quickly look up where to verify something.
## How the Systems Link Together
Understanding how WHMCS and Salesforce are connected is essential for UAT. Here is the linking chain:
### Customer Linking (established during signup)
```
Portal User ID ←→ WHMCS Client ID ←→ Salesforce Account ID
(portal database stores this three-way mapping)
```
| System | Field | What It Stores |
| ------------------ | ------------------------------------- | ----------------------------------------------------- |
| WHMCS Client | Custom Field #198 ("Customer Number") | The Salesforce Account Number (`SF_Account_No__c`) |
| Salesforce Account | `WH_Account__c` | The WHMCS Client ID in format "#1234 - Customer Name" |
| Salesforce Account | `SF_Account_No__c` | The Customer Number (same value as WHMCS field #198) |
**To verify the link:** Open the WHMCS Client's custom fields and find the Customer Number. Then search Salesforce for an Account with that same `SF_Account_No__c`. The Account's `WH_Account__c` field should contain the WHMCS Client ID.
### Subscription / Opportunity Linking (established during provisioning)
```
WHMCS Service ←→ Salesforce Opportunity
```
| System | Field | What It Stores |
| ---------------------- | ---------------------------- | ----------------------------- |
| WHMCS Service | Custom Field "OpportunityId" | The Salesforce Opportunity ID |
| Salesforce Opportunity | `WHMCS_Service_ID__c` | The WHMCS Service/Product ID |
**To verify the link:** Open a WHMCS Service's custom fields and find the OpportunityId. Then open that Opportunity in Salesforce and check `WHMCS_Service_ID__c` matches the WHMCS Service ID.
This bidirectional link is what makes cancellation work -- the portal uses it to find the right Opportunity to update.
### Order Linking (established during provisioning)
```
Salesforce Order → WHMCS Order
Salesforce OrderItem → WHMCS Service
```
| System | Field | What It Stores |
| -------------------- | --------------------- | --------------------------------------- |
| Salesforce Order | `WHMCS_Order_ID__c` | The WHMCS Order ID |
| Salesforce OrderItem | `WHMCS_Service_ID__c` | The WHMCS Service ID for each line item |
---
## Salesforce Account Fields Reference
These are the key fields on the Salesforce Account record that the portal reads and writes:
### Portal-Specific Fields
| Field Label | API Name | Set By | When | Values |
| -------------------------- | ------------------------------- | ---------- | ---------------- | -------------------------------------------- |
| Customer Number | `SF_Account_No__c` | Salesforce | Account creation | Unique identifier (matches WHMCS field #198) |
| Portal Status | `Portal_Status__c` | Portal | Signup | "Active" |
| Portal Registration Source | `Portal_Registration_Source__c` | Portal | Signup | "New Signup" or "Migrated" |
| Portal Last Sign-In | `Portal_Last_SignIn__c` | Portal | Each login | Timestamp |
| WHMCS Account | `WH_Account__c` | Portal | Signup | "#1234 - Customer Name" format |
### Internet Eligibility Fields
| Field Label | API Name | Set By | When | Values |
| -------------------- | ------------------------------------------- | -------- | ---------------------------- | ----------------------------------------------------- |
| Internet Eligibility | `Internet_Eligibility__c` | SF Agent | After manual NTT check | Speed value (e.g., "Cross 10G", "Hikari 1G") or empty |
| Eligibility Status | `Internet_Eligibility_Status__c` | SF Agent | After review | Status of the check |
| Request Date | `Internet_Eligibility_Request_Date_Time__c` | Portal | When customer requests check | Timestamp |
| Checked Date | `Internet_Eligibility_Checked_Date_Time__c` | SF Agent | When agent completes review | Timestamp |
### ID Verification Fields
| Field Label | API Name | Set By | When | Values |
| ------------------- | ---------------------------------------- | ----------------- | ------------------ | ---------------------------------------------------- |
| Verification Status | `Id_Verification_Status__c` | Portal / SF Agent | Upload / Review | "Not Submitted", "Submitted", "Verified", "Rejected" |
| Submitted Date | `Id_Verification_Submitted_Date_Time__c` | Portal | On document upload | Timestamp |
| Verified Date | `Id_Verification_Verified_Date_Time__c` | SF Agent | After approval | Timestamp |
| Note | `Id_Verification_Note__c` | SF Agent | After review | Internal notes |
| Rejection Message | `Id_Verification_Rejection_Message__c` | SF Agent | If rejected | Reason shown to customer |
### Standard Fields
| Field Label | API Name | Description |
| --------------- | ------------------------------------------------------------------------------------- | ----------------------------------------- |
| Email | `PersonEmail` | Customer email address |
| Phone | `Phone` | Customer phone number |
| Billing Address | `BillingStreet`, `BillingCity`, `BillingState`, `BillingPostalCode`, `BillingCountry` | Customer address (snapshot at order time) |
---
## WHMCS Client Custom Fields Reference
| Field ID | Field Name | What It Stores | Where to Find It |
| -------- | --------------- | -------------------------------------------------------------------------------- | -------------------------------- |
| **198** | Customer Number | Salesforce Account Number (`SF_Account_No__c`) -- the critical cross-system link | Client > Profile > Custom Fields |
| **200** | Gender | Customer gender (Male, Female, Other) | Client > Profile > Custom Fields |
| **201** | Date of Birth | Customer DOB | Client > Profile > Custom Fields |
---
## Salesforce Opportunity Stage Reference
| Stage | Display | Meaning |
| --------------- | --------------- | ------------------------------------------------------------------------ |
| Introduction | Introduction | Initial interest (e.g., eligibility check requested) |
| WIKI | WIKI | Low-priority lead |
| Ready | Ready | Customer is eligible and ready to order |
| Post Processing | Post Processing | Order has been placed, being reviewed |
| Active | Active | Service is live |
| △Cancelling | Cancelling | Cancellation requested, service still running until end of billing cycle |
| Cancelled | Cancelled | Service has been cancelled |
| Completed | Completed | Service lifecycle complete |
| Void | Void | Lost or not eligible |
| Pending | Pending | On hold |
---
## Salesforce Case Origin Reference
| Origin Value | Created By | Visible to Customer? | When Created |
| ------------------- | --------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------- |
| Portal Support | Customer (via support page) | Yes -- appears in customer's cases list | Customer creates a support ticket |
| Portal Notification | Portal (automatic) | No -- internal only | Order placed, eligibility requested, cancellation requested, ID verification uploaded |
| Web | Public contact form | No -- unlinked to account | Guest submits contact form |
---
## Portal Action → WHMCS Records
| Portal Action | WHMCS Object | Where to Find It | Key Fields to Check |
| ----------------------------------- | --------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| **Sign up (new customer)** | Client | Clients > Client List > search by email | First Name, Last Name, Email, Phone, Address, Custom Fields (#198 Customer Number, #200 Gender, #201 DOB) |
| **Sign up (migrate WHMCS account)** | Client (existing) | Clients > Client List > search by email | Confirm no duplicate created; Custom Field #198 now has Salesforce Account Number |
| **Edit profile (email/phone)** | Client | Clients > Client List > open client | Email Address, Phone Number updated |
| **Edit address** | Client | Clients > Client List > open client | Address 1, Address 2, City, State, Postcode, Country |
| **Order provisioned** | Product/Service | Client > Products/Services tab | Product name, Status (Active), Billing Cycle, Amount, Custom Field "OpportunityId" = SF Opportunity ID |
| **Order provisioned** | Order | Client > Orders tab | WHMCS Order created with line items |
| **SIM plan change** | Product/Service | Client > Products/Services tab | Product name updated to new plan, Amount updated (takes effect 1st of next month) |
| **SIM data top-up** | Invoice | Billing > Invoices > search by client | New invoice for top-up amount (500 JPY per GB), Status Paid |
| **SIM reissue** | Product/Service | Client > Products/Services tab | Same WHMCS service ID -- no new service created |
| **Voice feature toggle** | Add-on Services | Client > Products/Services tab | Voice Mail (pid 119), Call Waiting (pid 123) updated |
| **View invoices** | Invoices | Billing > Invoices > search by client | Invoice Number, Status, Amount, Due Date match portal |
| **Pay invoice** | Invoice + Transaction | Billing > Invoices > open invoice | Status changes to Paid; Transaction record created |
| **Cancel subscription** | Product/Service | Client > Products/Services tab | Status changes to Cancelled at end of billing cycle |
## Portal Action → Salesforce Records
| Portal Action | Salesforce Object | Where to Find It | Key Fields to Check |
| -------------------------------- | ----------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| **Sign up** | Account | Search by email or `SF_Account_No__c` | `Portal_Status__c` = Active, `Portal_Registration_Source__c`, `WH_Account__c` contains WHMCS Client ID |
| **Sign up** | Contact | Under the Account record | Email, First Name, Last Name |
| **Place an order** | Order | Account > Related > Orders | `Status`, `Type`, `OpportunityId`, service-specific fields (see doc 05 for full field list) |
| **Place an order** | Opportunity | Account > Related > Opportunities | `StageName` = "Post Processing", `CommodityType__c`, `Opportunity_Source__c` contains "Portal" |
| **Place an order** | OrderItem | Under the Order | `Product2Id`, `UnitPrice`, `Quantity`, `Billing_Cycle__c` |
| **Place an order** | Case | Cases tab (not visible to customer) | Origin = "Portal Notification", Subject contains order info |
| **Order provisioned** | Order | Same Order | `WHMCS_Order_ID__c` populated, `Activation_Status__c` = "Activated" |
| **Order provisioned** | OrderItem | Under the Order | `WHMCS_Service_ID__c` populated for each item |
| **Order provisioned** | Opportunity | Same Opportunity | `WHMCS_Service_ID__c` populated, `StageName` = "Active" |
| **Create support case** | Case | Cases tab > search by Account | Origin = "Portal Support", `Subject`, `Priority`, `Status` |
| **Reply to support case** | CaseComment | Under the Case | Comment body, Created Date |
| **Upload residence card** | Account | Search by `SF_Account_No__c` | `Id_Verification_Status__c` = "Submitted" |
| **Upload residence card** | ContentVersion | Account > Related > Files | Uploaded document file |
| **ID approved by agent** | Account | Same Account | `Id_Verification_Status__c` = "Verified", `Id_Verification_Verified_Date_Time__c` set |
| **ID rejected by agent** | Account | Same Account | `Id_Verification_Status__c` = "Rejected", `Id_Verification_Rejection_Message__c` has reason |
| **Internet eligibility request** | Account | Search by `SF_Account_No__c` | `Internet_Eligibility_Request_Date_Time__c` set |
| **Internet eligibility request** | Case | Cases tab | Origin = "Portal Notification", new Case created each time |
| **Eligibility checked by agent** | Account | Same Account | `Internet_Eligibility__c` populated with speed value, `Internet_Eligibility_Checked_Date_Time__c` set |
| **Cancel SIM** | Opportunity | Account > Opportunities | `StageName` = "△Cancelling", `SIMScheduledCancellationDateAndTime__c` set, `WHMCS_Service_ID__c` matches WHMCS service |
| **Cancel SIM** | Case | Cases tab (not visible to customer) | Origin = "Portal Notification" |
| **Cancel Internet** | Opportunity | Account > Opportunities | `StageName` = "△Cancelling", `ScheduledCancellationDateAndTime__c` set, `CancellationNotice__c`, `LineReturn__c` for equipment |
| **Cancel Internet** | Case | Cases tab (not visible to customer) | Origin = "Portal Notification" |
## Portal Feature → Data Source
This table shows where each portal feature gets its data from. Useful for understanding which system to check when something looks wrong.
| Portal Feature | Primary Data Source | Secondary Source |
| --------------------------------- | --------------------------------------- | --------------------------------------- |
| Dashboard - Active Services count | WHMCS (subscriptions) | -- |
| Dashboard - Open Cases count | Salesforce (cases) | -- |
| Dashboard - Recent Orders | Salesforce (orders) | -- |
| Dashboard - Recent Activity | Portal database (aggregated) | WHMCS + Salesforce |
| Dashboard - Task Cards | Portal (computed from multiple sources) | WHMCS + Salesforce |
| Service Catalog / Plans | Salesforce (Product2, PricebookEntry) | -- |
| Eligibility Status | Salesforce (Account fields) | -- |
| Checkout / Order Submission | Salesforce (Order, Opportunity) | -- |
| Order Real-time Tracking | Salesforce Platform Events → Portal SSE | -- |
| Subscription List | WHMCS (Products/Services) | -- |
| SIM Management (usage, voice) | Freebit (via portal backend) | WHMCS for billing |
| SIM Plan Change | Freebit (execution) | WHMCS (billing update) |
| SIM Data Top-up | Freebit (execution) | WHMCS (invoice creation) |
| Invoices | WHMCS (Invoices) | -- |
| Payments | WHMCS (Transactions) | -- |
| Support Cases | Salesforce (Cases) | -- |
| Identity Verification | Salesforce (Account + ContentVersion) | -- |
| Notifications | Portal database | Triggered by Salesforce Platform Events |
| Address | WHMCS (Client record) | Japan Post API (for lookup) |
| Profile (name, DOB, gender) | WHMCS (Client record) | -- |
| Profile (Customer Number) | Salesforce (Account `SF_Account_No__c`) | -- |
## WHMCS Navigation Quick Reference
| What You're Looking For | Where to Go in WHMCS |
| --------------------------------------- | --------------------------------------------------------------- |
| A customer's record | Clients > Client List > search by name or email |
| A customer's services | Open Client > Products/Services tab |
| Service custom fields (OpportunityId) | Open Client > Products/Services > click service > Custom Fields |
| A customer's invoices | Open Client > Invoices tab, or Billing > Invoices |
| A specific invoice | Billing > Invoices > search by invoice number |
| Payment transactions | Open an Invoice > Transactions section |
| Client custom fields (#198, #200, #201) | Open Client > Profile > Custom Fields section |
| Payment methods | Open Client > Pay Methods tab |
## Salesforce Navigation Quick Reference
| What You're Looking For | Where to Go in Salesforce |
| -------------------------------- | ----------------------------------------------------------------------------------------- |
| A customer's account | Search globally by email or Customer Number (`SF_Account_No__c`), or Accounts tab |
| Portal status fields | Open Account > check `Portal_Status__c`, `Portal_Registration_Source__c`, `WH_Account__c` |
| WHMCS link verification | Open Account > check `WH_Account__c` contains WHMCS Client ID |
| Internet eligibility | Open Account > check `Internet_Eligibility__c` and related date fields |
| ID verification status | Open Account > check `Id_Verification_Status__c` and related fields |
| Orders for a customer | Open Account > Related > Orders |
| Opportunities for a customer | Open Account > Related > Opportunities |
| Opportunity → WHMCS link | Open Opportunity > check `WHMCS_Service_ID__c` |
| Cancellation status | Open Opportunity > check `StageName` for "△Cancelling" or "Cancelled" |
| Support cases (customer-visible) | Cases tab > filter Origin = "Portal Support" |
| Internal notification cases | Cases tab > filter Origin = "Portal Notification" |
| Case comments/replies | Open a Case > Related > Case Comments or Email Messages |
| Uploaded documents | Open Account > Related > Files (ContentVersion) |
| Product catalog | Products tab (Product2 records) > check `Portal_Accessible__c` = true |