Daily Tasks

Home Daily Tasks
Bread for the City – Dev Checklist
Meeting Notes · Bread for the City
Action Items
📅 Post-Meeting Summary 🏢 Bread for the City 🔧 Social Services Platform
🐛

Bug Fixes

Bug · 01

GP Record Type – Age Field Not Auto-Populating

When raising a Services Case with record type GP and case details include a client contact, the Age field must dynamically populate from the linked contact record. Currently the field remains blank.

❌ Not Working
Bug · 02

Map Not Loading on Search Buildings Page

After saving the record and clicking Search Buildings, the map fails to render correctly. The map must load fully without errors to display building locations to the end customer.

❌ Not Working
Bug · 03

Date Submitted Missing on HCP Application

Navigating to Social Services Case → CHIP related list → Applications → HCP Application, the Date Submitted field does not populate. This data must appear on the application record and flow through to Print All.

❌ Not Working
Bug · 04

Missing Application Section – Search Buildings Popup

When the Search Buildings popup loads, an entire Application section is absent. A full comparison against the Production layout is needed to identify all missing fields and sections.

❌ Missing Section

Enhancements & Functional Requirements

Enhancement · 05

Disability & Wheelchair Fields – Editable on Search Buildings Page

These fields currently exist on the Search Buildings page but must be editable by the user. Use case: refining search criteria (e.g., senior citizen, wheelchair access) without navigating away.

⚙️ Needs Update
Enhancement · 06

Search Buildings – Filter Results by Number of Rooms

When a user updates criteria (disability, wheelchair, room count) and re-searches, results must return all matching buildings strictly based on the selected filters.

⚙️ Needs Update
Enhancement · 07

Print All – Include Full Application Details

The Print All feature on the Search Buildings page must include: Building Name, Date Submitted, Comments, and all other application record fields currently absent from the printout.

⚙️ Needs Update
Enhancement · 08

Map – Accurate Building Locations Post Data Import

After exporting and importing building data, the map must accurately pin building locations so they can be shown on screen to the end customer during a session.

⚙️ Needs Update
🔍

Investigation & QA Tasks

# Task Owner
1 Compare Search Buildings popup vs Production — identify all missing fields & sections Dev / QA
2 Audit for any additional missing items beyond the Application section Dev / QA
3 Verify building data export/import pipeline produces correct map coordinates Dev

Dev Checklist

0%
0 of 8 complete
SCI360 — Email Migration Tracker
Migration Operations
SCI360 — Email Tracker
0/0
In Progress
01 Delete Emails
Harsh@sci360degrees.com Delete
Kunal@sci360degrees.com Delete
Wahid@sci360degrees.com Delete
vivek@sci360degrees.com Delete
02 Slack License
Assign new Slack license via 360IntelligentSolutions
Add to indatalabs-support channel  ·  Update user info
Slack
03 Email Migration — Fred Loya
Discard
program@sci360degrees.com
Used by Fred Loya
Replace with
program@360intelligentsolutions.com
New address
04 Audit Checks
Vivek
Integration Audit
program@sci360degrees.com Check
program@360intelligentsolutions.com Check
Pankaj
AWS Audit
program@sci360degrees.com Check
program@360intelligentsolutions.com Check
05 Remove App Dependency
360IS-X Remove
06 Integrations Status
Stripe Active
AWS Active
ChatGPT Active
Pinecone Inactive
07 Products by Org
Fred Loya Prod Org
360OCR 360 MedReview 360 Crossfire Ask360 360 Demand Review
Incredibly Cloudy Org
Spanning
360IS Prod
360ContractReview Construction 360ContractReview General 360ContractReview Real Estate 360DemandReview+ 360Legalize 360ContractReview 360MailStream 360 Verify Case Support
SCI360 Prod
Case Support
08 Recommended Sequence
01 Vivek + Pankaj complete integration and AWS audits on both program@ addresses Vivek · Pankaj
02 Migrate Fred Loya email to program@360intelligentsolutions.com Admin
03 Update active integration references — Stripe, AWS, ChatGPT Pankaj
04 Delete four personal @sci360degrees.com email accounts Admin
05 Remove 360IS-X app dependency Dev
06 Assign Slack license via 360IntelligentSolutions · add to indatalabs-support Admin
SCI360 — Email Migration Tracker
360 IS — Developer Spec Document
v1.0 · 24 May 2026 · Vivek → Developer
Active Sprint

360 IS — Sprint Overview

Invoice automation, Stripe billing, and product variant deployment

Go-Live: 31 May Demo: Today 1 PM SFDC + Stripe
P0 Tasks
5
Ship before 1 PM
P1 Tasks
3
This week
P2 Tasks
2
Next sprint
Timeline
TODAY — 24 May 2026, 1 PM
Demo: 360 Demand Review Plus
Full end-to-end: claim submitted → page count visible → invoice record created. Fix detail page blank data. Add Created By field to list view.
TODAY — Evening
Vivek sends Stripe integration doc for Demand Review
Defines: offline invoice generation via Stripe, line items to pass, how Stripe invoice maps back to SFDC Invoice__c. Do NOT wire Stripe until this arrives.
This Week
Contract Review Stripe billing (PAYG + Subscription)
Build usage meter, test in sandbox, share with Michael & Justin for go-ahead. Justin owns final approval.
31 May 2026
Invoice month-end rollup runs
Scheduled Apex fires. Claim count + total page count pushed to May Invoice record. Status = Draft. Vivek reviews and decides Stripe publishing step.
Next Sprint
Product variants + Experience site cleanup
Construction Contract, Real Estate, Journal, All-in-One products. Clean up unused Digital Experience sites.
What's Already Built — Do Not Rebuild
Claim Feature object — exists with Number of Pages field. Number of Documents = always 1 per claim (by design). Ready to roll up.
Invoice__c object — already in org with fields: Invoice Date, Amount, Stripe Error Message, Status. Just needs automation wired up.
360 Demand Review — live. Offline/online mode logic deployed. Needs test + demo prep.
360 Contract Review — live. Stripe not yet connected. Billing logic to be built this week.

360 Demand Review

Invoice automation — SFDC only. No Stripe until Vivek's doc arrives.

P0 SFDC Dev No Stripe Yet
Do NOT connect 360 Demand Review to Stripe until Vivek provides the integration document (expected today evening). Invoice object in SFDC only for now.
Task 1 — Auto-create Invoice record on 1st of month
🗓
Scheduled Apex Job — Monthly Invoice Creation
Fires on 1st of every month · Creates one Invoice__c per active account/product
Scheduled Apex Invoice__c
Fields to set on creation
FieldValueNotes
Status__cDraftDefault. Never change on creation.
Invoice_Date__cLast day of current monthe.g. if run on 1 May → set to 31 May
Amount__cnull / blankPopulated at month-end by separate job
Total_Claims__cnullPopulated at month-end
Total_Pages__cnullPopulated at month-end
Stripe_Error__cnullUsed later when Stripe connected
Product__c'360 Demand Review'Lookup or picklist to product
Month_Year__c'May 2026'For deduplication check
! Add a deduplication check: if an Invoice__c already exists for this account + product + month, skip creation. Prevents double-invoicing on job reruns.
Apex skeleton
global class InvoiceMonthlyCreator implements Schedulable { global void execute(SchedulableContext sc) { Date today = Date.today(); Date lastDay = Date.newInstance( today.year(), today.month(), Date.daysInMonth(today.year(), today.month()) ); String monthYear = today.format('MMMM yyyy'); // Query active accounts/subscriptions for Demand Review List<Account> accounts = [ SELECT Id FROM Account WHERE Active_Product__c = '360 Demand Review' ]; List<Invoice__c> toInsert = new List<Invoice__c>(); for (Account a : accounts) { // Dedup check Integer existing = [SELECT COUNT() FROM Invoice__c WHERE Account__c = :a.Id AND Month_Year__c = :monthYear AND Product__c = '360 Demand Review']; if (existing == 0) { toInsert.add(new Invoice__c( Account__c = a.Id, Status__c = 'Draft', Invoice_Date__c = lastDay, Month_Year__c = monthYear, Product__c = '360 Demand Review' )); } } if (!toInsert.isEmpty()) insert toInsert; } }
Schedule string (run at midnight on 1st of every month)
// In Dev Console or Setup → Apex Jobs System.schedule('Monthly Invoice Creator', '0 0 0 1 * ?', // cron: midnight, 1st of every month new InvoiceMonthlyCreator() );
Task 2 — Month-end rollup of Claims → Invoice
📊
Scheduled Apex Job — Month-End Invoice Rollup
Fires on last day of month (31st or 28/29/30) · Aggregates Claim data into Invoice
Scheduled Apex AggregateResult
Rollup logic
1
Query all Claim_Feature__c records where CreatedDate = this calendar month and status = Completed (or all statuses — confirm with Vivek).
2
Total Claims = COUNT of Claim records for the month per account.
3
Total Pages = SUM of Number_of_Pages__c across all those claims. Note: Number_of_Documents is always 1 per claim — no need to sum separately.
4
Find the Draft Invoice__c for this account + month. Update: Total_Claims__c, Total_Pages__c. Status stays Draft.
5
Do NOT set Amount__c — formula for amount will be provided by Vivek based on Stripe pricing doc.
// AggregateResult query List<AggregateResult> results = [ SELECT Account__c acctId, COUNT(Id) claimCount, SUM(Number_of_Pages__c) totalPages FROM Claim_Feature__c WHERE CreatedDate = THIS_MONTH // AND Status__c = 'Completed' ← confirm with Vivek GROUP BY Account__c ]; for (AggregateResult ar : results) { Id acctId = (Id) ar.get('acctId'); Integer claimCount = (Integer) ar.get('claimCount'); Decimal totalPages = (Decimal) ar.get('totalPages'); Invoice__c inv = [ SELECT Id FROM Invoice__c WHERE Account__c = :acctId AND Month_Year__c = :monthYear AND Product__c = '360 Demand Review' AND Status__c = 'Draft' LIMIT 1 ]; inv.Total_Claims__c = claimCount; inv.Total_Pages__c = totalPages; update inv; }
Task 3 — Fix Claim detail page (data not showing)
1
Check Field-Level Security for profile running the page — ensure Number_of_Pages__c and Status fields are visible.
2
Check Lightning Page Layout — open App Builder for the Claim Feature detail page and confirm fields are on the layout.
3
Check Sharing Rules — if OWD is Private, ensure the user has access to the record.
4
Verify the "Demand Review Completed" page is using the correct record type or page assignment. May be showing a different layout.
5
Required visible fields on detail page: Number of Pages, Number of Documents (always 1), Status, Created By, Account.
Task 4 — Claims list view: add Created By, delete test record
1
Edit the Claims list view → add Created By column.
2
Delete the test record created on 25 May 2026 (identified by Vivek as a test/generated record).
3
Confirm remaining records are real data — take screenshot for demo.

360 Contract Review

Two billing models: Pay As You Go ($7/transaction) and Subscription ($10/contract)

P1 Stripe Required SFDC + Stripe
Pay As You Go rate
$7
per transaction / contract reviewed
Subscription rate
$10
per contract + subscription base fee
Model A — Pay As You Go
PAYG: Usage-Based Billing via Stripe
No upfront charge · $7 per transaction · Monthly Stripe invoice · Status = Paid
1
No subscription charge. Customer pays only for what they use.
2
Each contract review transaction = 1 usage event sent to Stripe meter. Record meter event immediately on transaction completion.
3
Stripe generates monthly invoice automatically based on meter. Invoice shows all usage events for the month with $7 rate applied.
4
Invoice does NOT have a payment link — payment is collected via saved Stripe payment method (charge happens on transaction date).
5
SFDC Invoice__c Status = Paid (because charge already collected at time of transaction).
6
Create one sandbox test record → share with Michael and Justin → await Justin's go-ahead before deploying to production.
! Stripe usage meter must be applied. Without it, billing will not calculate correctly. Do not skip this step.
Stripe objects to configure
Stripe ObjectConfig
Meterevent_name: "contract_review_payg" · aggregation: sum
Price$7 per unit · billing_scheme: per_unit · usage_type: metered
Subscriptionbilling_cycle_anchor: 1st of month · billing_thresholds: none
Invoiceauto-generated monthly · collection_method: charge_automatically
Model B — Subscription
🔄
Subscription: Recurring Base + Per-Contract Usage
Upfront recurring fee + $10 per contract review · Usage meter required
1
Two price components on the Stripe subscription: (a) flat recurring subscription fee, (b) $10/contract metered usage.
2
Upfront subscription charge processed at start of billing cycle via Stripe recurring billing.
3
Each contract review → send usage event to Stripe meter. At month-end, Stripe calculates (count × $10) and adds to invoice.
4
Stripe invoice = subscription line + usage line. Customer sees both charges clearly.
5
SFDC Invoice__c reflects: Amount = subscription base + (contract count × 10). Status = Paid.
Stripe objects to configure
Stripe ObjectConfig
Meterevent_name: "contract_review_subscription" · aggregation: sum
Price (flat)Subscription base amount · recurring · interval: month
Price (metered)$10 per unit · usage_type: metered · same subscription
SubscriptionBoth prices on one subscription item

Stripe Integration Spec

API flow, SFDC mapping, and key integration rules

Stripe API SFDC Callout
360 Demand Review: Stripe NOT connected yet. Below spec applies to 360 Contract Review only until Vivek's evening doc arrives.
SFDC → Stripe data flow (Contract Review)
// Step 1: Record meter event on each contract review completion // Apex HTTP callout to Stripe Meter Events API HttpRequest req = new HttpRequest(); req.setEndpoint('https://api.stripe.com/v2/billing/meter_events'); req.setMethod('POST'); req.setHeader('Authorization', 'Bearer ' + stripeApiKey); req.setBody( 'event_name=contract_review_payg' + '&payload[stripe_customer_id]=' + customerId + '&payload[value]=1' // 1 contract = 1 unit ); Http http = new Http(); HttpResponse res = http.send(req); // Log res.getBody() to Stripe_Error__c on Invoice__c if status != 200
SFDC Invoice__c ↔ Stripe Invoice mapping
SFDC FieldSourceWhen
Status__c = 'Draft'Set on record creation1st of month
Invoice_Date__cLast day of month (calculated)1st of month
Total_Claims__cCOUNT of Claim_Feature__c31st of month
Total_Pages__cSUM of Number_of_Pages__c31st of month
Amount__cFormula (Vivek to confirm)After Stripe doc
Stripe_Invoice_Id__cStripe API response id fieldWhen Stripe connected
Stripe_Error__cHTTP error body from calloutOn callout failure
Status__c = 'Paid'Set after Stripe confirms paymentPAYG: per transaction. Sub: monthly.
Key rules — do not deviate
R1
Invoices are informational only. No payment link on any invoice. Payment collected via Stripe charge method.
R2
Always apply a Stripe usage meter for metered products. Without it, the product billing will not work.
R3
PAYG invoice status in SFDC = Paid (charge already collected per-transaction). Demand Review invoice status = Draft (no payment yet).
R4
Store Stripe API key in Named Credential in SFDC, not hardcoded. Use callout permission set.
R5
All Stripe callouts must handle error responses — write error body to Stripe_Error__c field on Invoice__c.
R6
Test everything in Stripe sandbox / SFDC sandbox first. Share test result with Michael and Justin. Justin gives go-ahead for production deploy.

Products & Experience Sites

Current product inventory, missing variants, and site cleanup

P2 SFDC Dev
Product inventory
ProductAudienceBillingStatusExperience Site
360 Demand Review Claris Offline invoice (SFDC) Live Live
360 Contract Review Journal contracts Stripe PAYG / Sub Live Live
360 RC (Real Estate) Real estate contracts Stripe PAYG / Sub Needs deploy TBD
360 Construction Contract Construction contracts Stripe PAYG / Sub In progress (Friday) Not created
360 All Contracts All contract types Stripe PAYG / Sub Needs deploy TBD
Action items for product variants
1
Complete 360 Construction Contract deployment (was in progress last Friday). Verify product record, Experience site, and permission sets.
2
Deploy 360 RC (Real Estate) and 360 All Contracts following same pattern as Contract Review.
3
Each product needs its own Experience Cloud site. Clone the existing Contract Review site as a template.
4
Audit all Experience Cloud sites. Archive/deactivate any site not tied to an active product. Keep: Demand Review, Contract Review, and new variants once deployed.
5
Pricing logic applies to all contract review variants: PAYG = $7/transaction, Subscription = $10/contract + base fee.

Developer Checklist

Click to mark items complete. Tracks your progress through the sprint.

P0 — Ship today (before 1 PM demo)
Delete test Invoice/Claim record created 25 May 2026
Add "Created By" column to Claims list view
Fix Claim detail page — check FLS, page layout, sharing rules
Confirm Number_of_Pages__c and Number_of_Documents__c visible on claim detail
Build Scheduled Apex: InvoiceMonthlyCreator (runs 1st of month)
Build Scheduled Apex: InvoiceMonthEndRollup (runs last day of month)
Add deduplication check to invoice creation job
Schedule both Apex jobs in org (use System.schedule)
Create May 2026 invoice record manually (for demo — since 1st May already passed)
Demo ready: claim → page count → invoice record with rollup data
P1 — This week (after Vivek's Stripe doc)
Receive Stripe integration doc from Vivek (evening today)
Set up Stripe PAYG meter for 360 Contract Review (event_name: contract_review_payg)
Set up Stripe Subscription meter for 360 Contract Review subscription tier
Build SFDC Apex callout: meter event on each contract review completion
Store Stripe API key in Named Credential (NOT hardcoded)
Wire Stripe error response → Stripe_Error__c field on Invoice__c
Create sandbox test record for PAYG billing
Share sandbox test with Michael and Justin for review
Await Justin's go-ahead before deploying to production
P2 — Next sprint
Complete 360 Construction Contract deployment
Deploy 360 RC (Real Estate Contract) product + Experience site
Deploy 360 All Contracts product + Experience site
Audit all Experience Cloud sites — deactivate unused ones
Confirm Stripe billing applies to all contract review variants