DE Toolkit Week 2 Systems And Tools
Training Program

Week 2 Systems And Tools

Week 2 — Systems & Tools

Time commitment: ~10–12 hours (reading + hands-on CLI practice) Goal: Every CLI script, every system, every tool — you can use it without opening the docs. By Friday you’ve run every script at least once against a real (or test) migration.


Day 1 — CLI scripts: porting and compliance

Reading

  • deployment-toolkit/04-number-porting.md — full read
  • deployment-toolkit/08-compliance-requirements.md — full read

Exercise 1.1 — porting_tracker.py

Using a test migration ID (ask your manager for one or create a sandbox entry):

# 1. Create a port order
python3 execution/porting_tracker.py --action create \
    --migration-id test-migration-001 \
    --numbers "415-555-0100,415-555-0101" \
    --carrier "Spectrum Business"

# 2. Check status
python3 execution/porting_tracker.py --action status --migration-id test-migration-001

# 3. Advance to LOA submitted
python3 execution/porting_tracker.py --action update \
    --migration-id test-migration-001 --stage loa_submitted

# 4. Advance to FOC received
python3 execution/porting_tracker.py --action update \
    --migration-id test-migration-001 --stage foc_received \
    --foc-date "2026-07-01"

# 5. Generate the port-day checklist
python3 execution/porting_tracker.py --action checklist --migration-id test-migration-001

Write down: What does the port-day checklist tell you that you didn’t already know?

Exercise 1.2 — compliance_checker.py

# 1. Detect and initialize a HIPAA migration
python3 execution/compliance_checker.py --migration-id test-compliance-001 --industry healthcare

# 2. Check what requirements are needed
python3 execution/compliance_checker.py --migration-id test-compliance-001 --check-status

# 3. Sign off a requirement
python3 execution/compliance_checker.py --migration-id test-compliance-001 \
    --sign-off --requirement hipaa_baa_signed --signed-by "test@example.com"

# 4. Check if Stage 3 is clear
python3 execution/compliance_checker.py --migration-id test-compliance-001 \
    --can-advance --stage 3

# 5. Try Stage 5 — it should be blocked
python3 execution/compliance_checker.py --migration-id test-compliance-001 \
    --can-advance --stage 5

# 6. What exit code did you get? What does it mean?

Day 2 — CLI scripts: feature mapping, health checks, proposals

Exercise 2.1 — feature_mapper.py

# 1. Generate a text feature map for RingCentral
python3 execution/feature_mapper.py --source avaya --target ringcentral --output-format text

# 2. Generate for 8x8
python3 execution/feature_mapper.py --source avaya --target 8x8 --output-format text

# 3. Compare: What features are "native" on 8x8 but "add-on" on RingCentral?
# 4. What feature is "missing" on one of the platforms?
# 5. If a customer has a 5-zone overhead paging system, what status does it show on ALL platforms?
#    What does that mean for your deployment?

Exercise 2.2 — health_check.py and generate_proposal.py

# Run a health check with good metrics
python3 execution/health_check.py --migration-id test-health-001 \
    --metrics '{"mos":4.2,"jitter":12,"latency":75,"packet_loss":0.2,"nps":8,"adoption_pct":0.82}'

# Run a health check with concerning metrics (below thresholds)
python3 execution/health_check.py --migration-id test-health-001 \
    --metrics '{"mos":3.2,"jitter":45,"latency":160,"packet_loss":2.5,"nps":5,"adoption_pct":0.45}'

# What's the difference in score and output? What would you do for the second scenario?

# Generate an assessment questionnaire
python3 execution/generate_proposal.py --stage assessment --migration-id test-assess-001
# Review the output: what questions does it ask? Are there any gaps you'd add?

Day 3 — n8n workflow deep dive

Reading

  • deployment-toolkit/09-tools-and-systems.md — full read
  • directives/migration-workflow.md — re-read the “Workflow 903 Production Status” section

Hands-on

Log into n8n at https://n8n.cloudmagicgroup.com:

  • Find workflow 903 — open it and trace the flow from the webhook trigger through each stage
  • Identify the compliance gate nodes (compliance-gate-stage3 and compliance-gate-stage5)
  • Find the Splunk HTTP Request nodes — what do they log?
  • Find the Resend (email) nodes — when do they fire?
  • Look at the execution history for workflow 903 — find the most recent successful execution and trace through each step

Exercise 3.1 — Manual re-trigger practice

Using the test payload in directives/migration-workflow.md (the “Webhook payload schema” section):

curl -X POST https://n8n.cloudmagicgroup.com/webhook/migration-new \
  -H "Content-Type: application/json" \
  -d '{
    "migration_id": "TEST-MANUAL-001",
    "customer_name": "Test Customer Inc",
    "customer_email": "test@testcustomer.com",
    "company_domain": "testcustomer.com",
    "seat_count": 25,
    "target_supplier": "RingCentral",
    "avaya_product": "Avaya IP Office 500",
    "urgency_level": "high",
    "avaya_contract_end": "2026-09-01",
    "deal_value": 18000,
    "partner_id": "CMTG-INTERNAL",
    "msp_slack_webhook": "https://hooks.slack.com/services/TEST"
  }'

Check n8n execution history: did it fire? Check #migrations in Slack: did the notification appear? Check Splunk: did the event land?


Day 4 — Splunk and observability

Exercise 4.1 — Splunk queries

Log into Splunk and run these searches:

# 1. All events in the avaya index in the last 24 hours
index=avaya earliest=-24h

# 2. All compliance sign-offs ever
index=avaya action=compliance_signoff

# 3. Find any porting events
index=avaya (action=port_order_created OR action=port_stage_advanced)

# 4. Find any health checks
index=avaya sourcetype=health_check

# 5. Find any errors
index=avaya level=error

For each query: What do you see? What would you do if the last query returned results?

Exercise 4.2 — Supabase inspection

Using the Supabase dashboard at https://supabase.com/dashboard/project/wjuavuucarznaioipitu:

  • Find the migrations table — how many rows are there?
  • Find a migration record for a real (or test) migration
  • Expand the metadata JSON column — find the compliance sub-object
  • Find a migration with porting_orders in the metadata — what stage is it in?

Day 5 — End-to-end drill

The full workflow on a paper migration

Pick a fictional customer (“ABC Manufacturing, 45 seats, single site, Avaya IP Office 500, target: 8x8”). Walk through the full workflow without stopping:

  1. Run generate_proposal.py --stage assessment — read through the questionnaire
  2. Run compliance_checker.py --industry manufacturing — what vertical is detected?
  3. Run feature_mapper.py --source avaya --target 8x8 — identify the gaps
  4. Create a port order in porting_tracker.py with 3 fictional numbers
  5. Advance the port order to foc_received with a target date
  6. Print the port-day checklist
  7. Run a health check with metrics you invent
  8. Write a 1-paragraph assessment summary for this fictional migration

Week 2 Readiness Check

Run these commands from memory (close your docs):

  1. porting_tracker.py — create a port order for migration ID “RCW2-001” with 2 numbers from “AT&T”
  2. compliance_checker.py — detect vertical for “dental clinic” and sign off hipaa_baa_signed
  3. feature_mapper.py — generate a text report for RingCentral
  4. In n8n, describe where to find the execution history for workflow 903

Then answer verbally: 5. What’s the field name in the n8n webhook payload for seat count? (NOT seats) 6. A compliance gate returns exit code 2 — what does that mean and what do you do? 7. A migration’s porting_orders metadata is empty but the LOA was submitted 3 days ago — what happened and how do you fix it?

Manager sign-off: _______________________ Date: _______________

Advance to Week 3: [ ] Yes [ ] Needs more time in: ____________________________