# External Processes and Team Handoffs

This document describes operational processes that occur outside the Customer Portal but are necessary for system operation and customer service.

---

## Process Ownership Matrix

| Process                       | Owner             | Trigger                   | Dependencies                | Documentation                                                        |
| ----------------------------- | ----------------- | ------------------------- | --------------------------- | -------------------------------------------------------------------- |
| CS Order Approval             | CS Team           | Order in "Pending Review" | Salesforce access           | CS training docs                                                     |
| Internet Eligibility Check    | CS Team           | Eligibility request Case  | Customer address info       | [Eligibility Guide](../how-it-works/eligibility-and-verification.md) |
| ID Verification Review        | CS Team           | Document upload           | Salesforce Files access     | [Eligibility Guide](../how-it-works/eligibility-and-verification.md) |
| WHMCS Product Setup           | DevOps            | New product launch        | WHMCS Admin access          | This document                                                        |
| Salesforce Flow Maintenance   | SF Admin          | Feature changes           | SF Admin + Dev access       | SF Flow documentation                                                |
| Freebit Account Configuration | Partner Relations | New SIM products          | Freebit partner credentials | Freebit contract docs                                                |
| SSL Certificate Renewal       | DevOps            | Expiration alerts         | Certificate provider access | This document                                                        |
| Database Backups              | DevOps            | Scheduled / On-demand     | DB Admin access             | [Database Operations](./database-operations.md)                      |

---

## Customer Onboarding Flow

The portal handles customer account creation automatically:

1. **New Customer Sign-Up** (Portal)
   - Customer provides email, name, address, and phone
   - Portal creates Salesforce Account and Contact automatically
   - Portal creates WHMCS client automatically
   - Portal creates ID mapping linking portal user → WHMCS → Salesforce

2. **Existing WHMCS Customer** (Portal)
   - Customer signs up with their email
   - Portal detects existing WHMCS account
   - Customer authenticates via WHMCS credentials
   - Portal links to existing Salesforce account via Customer Number

3. **Legacy Customer with Customer Number** (Portal)
   - Customer provides their Customer Number during sign-up
   - Portal looks up existing Salesforce account
   - Portal creates or links WHMCS client
   - Portal creates ID mapping

No manual Sales team setup is required. The portal handles all account provisioning.

---

## Order Approval Flow

### CS Review Process

When an order is placed, CS must review and approve:

**Order Review Checklist:**

1. [ ] Verify customer identity matches Salesforce Account
2. [ ] Confirm product eligibility (Internet type matches eligibility)
3. [ ] Verify installation address is serviceable
4. [ ] Check for duplicate active services
5. [ ] Review any special instructions or notes

**Approval Actions:**

- Approve: Set Order `Status = Approved`
  - Triggers provisioning workflow automatically
- Reject: Set Order `Status = Cancelled`
  - Add rejection reason to Order notes
  - Customer is notified via portal

**SLA:**

- Standard orders: Review within 2 business hours
- Priority orders: Review within 30 minutes

### Escalation Triggers

Escalate to supervisor if:

- Customer disputes eligibility result
- Multiple orders from same account in short period
- Order value exceeds threshold
- Address verification fails

---

## Internet Eligibility Process

For the complete eligibility and verification flow, see [Eligibility & Verification Guide](../how-it-works/eligibility-and-verification.md).

### CS Responsibilities

When an eligibility request Case is received:

1. Perform NTT serviceability check (manual process)
2. Update Account eligibility fields:
   - `Internet_Eligibility__c` = result (e.g., "Apartment 1G", "Home 1G")
   - `Internet_Eligibility_Status__c` = "Checked"
   - `Internet_Eligibility_Checked_Date_Time__c` = current timestamp
3. Update linked Opportunity stage:
   - Eligible → Stage: "Ready"
   - Not Eligible → Stage: "Void"
4. Close the Case

**SLA:** Standard check within 24-48 business hours.

---

## ID Verification Process

For the complete ID verification flow, see [Eligibility & Verification Guide](../how-it-works/eligibility-and-verification.md).

### CS Responsibilities

When a document is uploaded for manual review:

1. Review uploaded residence card in Salesforce Files
2. Verify document validity and identity match
3. Update Account verification fields:
   - `Id_Verification_Status__c` = "Verified" or "Rejected"
   - `Id_Verification_Verified_Date_Time__c` = current timestamp (if verified)
   - `Id_Verification_Rejection_Message__c` = reason (if rejected)

**Note:** Many ID verifications are auto-approved. CS only reviews flagged cases.

---

## Cancellation Request Process

For the complete cancellation flow, see:

- [Eligibility & Verification Guide - Cancellation](../how-it-works/eligibility-and-verification.md#cancellation-flow)
- [Opportunity Lifecycle - Cancellation](../integrations/salesforce/opportunity-lifecycle.md#cancellation-flow)

### CS Responsibilities

When a cancellation Case is received:

1. Verify customer authorization
2. Confirm scheduled cancellation date (25th rule applies)
3. On scheduled date:
   - Terminate service in WHMCS
   - Update Opportunity stage to "△Cancelled"
4. For Internet: Track equipment return via `LineReturn__c` field
5. Close the Case

### Cancellation Types

| Type     | Notice Period          | Effective Date         | WHMCS Action |
| -------- | ---------------------- | ---------------------- | ------------ |
| Internet | 30 days                | End of notice period   | Manual       |
| SIM      | Immediate or scheduled | 1st of following month | Automatic    |
| VPN      | Immediate              | Same day               | Manual       |

---

## Product Configuration

### Adding New Products

When launching new products, coordinate between teams:

**1. Salesforce Setup (SF Admin)**

- Create Product2 record
- Set required fields:
  - `Name`, `StockKeepingUnit`
  - `WH_Product_ID__c` (WHMCS product ID)
  - `Billing_Cycle__c`
  - `Item_Class__c` (Service, Activation, Add-on)
- Add to portal Pricebook (`PORTAL_PRICEBOOK_ID`)

**2. WHMCS Setup (DevOps/Billing)**

- Create product in WHMCS Products/Services
- Configure pricing and billing cycle
- Set up any required custom fields
- Test product creation via API

**3. Portal Verification (Development)**

- Verify product appears in catalog
- Test checkout flow with new product
- Confirm provisioning works correctly

**4. Documentation (All Teams)**

- Update product documentation
- Add to [WHMCS Mapping Reference](../integrations/salesforce/whmcs-mapping.md)

### Product Change Checklist

- [ ] Salesforce Product2 updated
- [ ] WHMCS product updated
- [ ] Pricing synced between systems
- [ ] Portal cache cleared
- [ ] Tested in staging environment
- [ ] Documentation updated

---

## Salesforce Flow Maintenance

### Record-Triggered Flows

The portal depends on these Salesforce Flows:

| Flow                    | Trigger                            | Action                               |
| ----------------------- | ---------------------------------- | ------------------------------------ |
| Order Approval Flow     | Order Status → Approved            | Publish `OrderProvisionRequested__e` |
| Eligibility Update Flow | Account eligibility fields changed | (Optional) Notify customer           |

### Flow Change Procedure

1. **Development** (SF Admin + Dev)
   - Clone existing Flow for modification
   - Test in Salesforce Sandbox
   - Document changes

2. **Deployment** (SF Admin)
   - Schedule deployment during low-traffic period
   - Notify development team
   - Activate new Flow version

3. **Verification** (Dev + QA)
   - Test affected portal functionality
   - Verify Platform Events are received
   - Check BFF logs for any errors

4. **Rollback Plan**
   - Keep previous Flow version available
   - Document rollback procedure
   - Have SF Admin available during deployment

---

## SSL Certificate Management

### Certificate Inventory

| Domain             | Provider      | Expiration | Renewal Process |
| ------------------ | ------------- | ---------- | --------------- |
| portal.example.com | Let's Encrypt | Auto-renew | Automated       |
| api.example.com    | Let's Encrypt | Auto-renew | Automated       |
| whmcs.example.com  | [Provider]    | [Date]     | Manual          |

### Renewal Procedure

**Automated (Let's Encrypt):**

- Certbot runs automatically
- Monitor for renewal failures
- Alert if cert expires within 14 days

**Manual:**

1. Generate CSR
2. Submit to certificate provider
3. Complete domain verification
4. Download and install certificate
5. Restart affected services
6. Verify certificate in browser

### Certificate Expiration Alerts

- 30 days: Warning notification
- 14 days: Urgent notification
- 7 days: Critical alert

---

## Credential and Access Management

### Access Request Process

| System     | Request To | Approval By | Access Level Options  |
| ---------- | ---------- | ----------- | --------------------- |
| Salesforce | SF Admin   | Manager     | Read-only, CS, Admin  |
| WHMCS      | DevOps     | Manager     | Staff, Admin          |
| BFF/Portal | DevOps     | Tech Lead   | Developer, Operator   |
| Database   | DevOps     | Tech Lead   | Read-only, Read-write |

### Offboarding Checklist

When a team member leaves:

- [ ] Revoke Salesforce access
- [ ] Revoke WHMCS access
- [ ] Remove from deployment systems
- [ ] Rotate any shared credentials they had access to
- [ ] Update on-call schedules
- [ ] Transfer ownership of documentation

---

## Communication Channels

### Team Contacts

| Team        | Channel               | Escalation    |
| ----------- | --------------------- | ------------- |
| Development | [Slack/Teams channel] | Tech Lead     |
| CS Team     | [Slack/Teams channel] | CS Manager    |
| Sales Team  | [Slack/Teams channel] | Sales Manager |
| DevOps      | [Slack/Teams channel] | Ops Lead      |
| SF Admin    | [Email/Slack]         | IT Manager    |

### Incident Communication

See [Incident Response Runbook](./incident-response.md) for incident communication procedures.

---

## Related Documents

- [Eligibility & Verification](../how-it-works/eligibility-and-verification.md)
- [Opportunity Lifecycle](../integrations/salesforce/opportunity-lifecycle.md)
- [Incident Response](./incident-response.md)
- [Provisioning Runbook](./provisioning-runbook.md)
- [Salesforce Requirements](../integrations/salesforce/requirements.md)
- [WHMCS Mapping Reference](../integrations/salesforce/whmcs-mapping.md)
- [Complete Operations Guide](../how-it-works/COMPLETE-GUIDE.md)

---

**Last Updated:** December 2025
