I help sales teams build consistent pipeline by tightening CRM workflows and improving lead handoffs.
✓ HubSpot • Salesforce • Outreach workflows✓ Training • Documentation • KPI tracking
View all projects
Contact Section with About Me Link

I'm Looking for My Next Role — Let's Connect

← Back to projects
HubSpot

Outbound Segmentation + Suppression

Targeting, exclusions, lifecycle hygiene for reporting accuracy

✓ Master suppression: Customer excluded✓ Outbound pool: Eligible contacts✓ KPIs: Attempts • Connects • Meetings

Goal and success metrics

Build a governed outbound segmentation system for community banks and credit unions that prevents accidental outreach to suppressed records and keeps KPI reporting consistent.

Targeting accuracySegmented views
Suppression coverageMaster DNC
Follow up hygieneStatus + last touch
Reporting consistencyKPI definitions

Workflow logic summary

  1. Outbound pool: Defines eligible contacts (email known, outbound eligible, not customer) as the base audience for every outbound segment.
  2. Segmentation: Creates persona and institution type segments (community bank vs credit union) for targeted outreach.
  3. Suppression: A master “Do Not Contact” rule excludes customers to prevent outreach and protect reporting accuracy.
  4. Execution loop: Outbound status and last outbound touch fields feed follow up and KPI views (attempted, connected, meeting set).

Data model and hygiene

  • Required fields: Persona, institution type, outbound eligible, lifecycle stage, outbound status, last outbound touch
  • Suppression rule: Lifecycle stage Customer is excluded from outbound pool and segments
  • Status definitions: Not Started, Attempted Outreach, Connected, Meeting set, Nurture, Disqualified
  • Naming conventions: OUT | Pool | …, OUT | Persona | …, OUT | Institution | …, SUP | Master | …

Tools

HubSpot demo portal • Contacts • Properties • Views (Advanced filters)

Sandbox screenshots

Outbound pool view screenshot placeholder
Outbound pool definition (click to enlarge)
Suppression view screenshot placeholder
Master suppression (Do Not Contact) view (click to enlarge)
KPI views screenshot placeholder
KPI / follow up view (click to enlarge)

Reporting and dashboards

Rep viewPersona and institution segments + follow up needed and overdue queues
Manager viewAttempts, connects, meetings set, and weekly activity snapshots
DefinitionsKPI definitions to keep “attempted,” “connected,” and “meeting set” consistent

Results

TargetingStandardizedReusable outbound pool + persona / institution segments
SuppressionEnforcedCustomers excluded via master DNC logic
Reporting hygieneImprovedStatus + dates support consistent follow up and KPI views

Note: If results are simulated, label them as expected impact based on governance and follow up improvements.

← Back to projects
HubSpot

Outreach Messaging + Follow Up Workflow

Templates, snippets, and follow up queues tied to segments

✓ Banking templates: 2✓ Call snippets: 2✓ Follow up queues: Needed + Overdue

Goal and success metrics

Create a reusable outbound messaging kit and a consistent follow up workflow that connects directly to segmentation, improves activity logging consistency, and supports clean reporting for a banking BDR motion.

Template reuseStandardized
Follow up coverageQueues built
Logging hygieneStatus + dates
Next step clarityRepeatable

Workflow logic summary

  1. Segment first: Start from eligible segment views (persona or institution) to select the right outreach audience.
  2. Send consistent messaging: Use banking specific email templates for first touch and no response follow up.
  3. Log the action: Update Outbound Status and Last Outbound Touch to document progress and keep reporting consistent.
  4. Work the queue: Use Follow Up Needed and Overdue views to ensure no prospect falls through the cracks.

Data model and hygiene

  • Templates: Banking intro template + no response follow up template
  • Snippets: Call opener + 15 minute meeting ask
  • Required fields: Outbound Status, Last Outbound Touch (supports follow up queues)
  • Rules of use: Status updated on every touch; last outbound touch updated to reflect recency

Tools

HubSpot templates • Snippets • Contact properties • Views (Advanced filters)

Sandbox screenshots

Templates list screenshot placeholder
Email templates list (click to enlarge)
Snippets list screenshot placeholder
Snippets for call opener + meeting ask (click to enlarge)
Follow up queue screenshot placeholder
Follow up queue view using status + last touch (click to enlarge)

Reporting and dashboards

Rep viewFollow Up Needed, Overdue, and next action segments by persona and institution type
Manager viewOutcome distribution by status (attempted, connected, meeting set) to monitor pipeline health
DefinitionsStandardizes what counts as attempted, connected, and meeting set

Results

Messaging consistencyStandardizedReusable templates and snippets aligned to banking personas
Follow up hygieneOperationalizedQueues built from status + last touch to prevent missed follow ups
Reporting readinessImprovedConsistent field updates support KPI views and activity summaries

Note: If results are simulated, label them as expected impact based on standardization and follow up process improvements.

← Back to projects
HubSpot

KPI Dashboard Pack

Attempts, connects, meetings set, and weekly activity using governed definitions

✓ KPI views: Attempted • Connected • Meetings✓ Date hygiene: Last touch + meeting date✓ Manager view: Weekly activity

Goal and success metrics

Create a lightweight KPI reporting pack inside HubSpot that standardizes what counts as outreach progress and produces consistent weekly snapshots for rep and manager visibility.

KPI consistencyDefined
Weekly activityTracked
Meeting set KPIDated
Follow up coverageVisible

Workflow logic summary

  1. Standardize outcomes: Use Outbound Status to define attempted outreach, connected, meeting set, nurture, and disqualified.
  2. Timestamp results: Use Last Outbound Touch for recency and Meeting Set Date for meeting KPI tracking.
  3. Rep KPIs: Views show current pipeline activity by outcome (attempted, connected, meetings set).
  4. Manager snapshot: Weekly activity view aggregates outreach momentum and supports basic performance monitoring.

Data model and hygiene

  • Properties: Outbound Status, Last Outbound Touch, Meeting Set Date
  • KPI definitions: Attempted vs connected vs meeting set defined and used consistently across views
  • Suppression aware: KPI views exclude customers to prevent inflated outreach counts
  • Repeatable filters: Eligible contacts + consistent date windows (today, this week)

Tools

HubSpot properties • Views (Advanced filters) • KPI definitions

Sandbox screenshots

Meetings set KPI view screenshot placeholder
Meetings set KPI view with Meeting Set Date (click to enlarge)
Connected KPI view screenshot placeholder
Connected KPI view (click to enlarge)
Weekly activity view screenshot placeholder
Weekly activity / manager snapshot view (click to enlarge)

Reporting and dashboards

Rep KPIsAttempted outreach, connected, meetings set, and disqualified views
Manager viewWeekly activity snapshot using status + last outbound touch
DefinitionsKPI definitions and SLA rules to keep reporting consistent

Results

Reporting consistencyStandardizedAligned definitions for attempted, connected, and meeting set
Meeting KPIOperationalMeeting Set Date supports week based KPI tracking
Manager visibilityImprovedWeekly activity view provides a quick pipeline health snapshot

Note: If results are simulated, label them as expected impact based on KPI standardization and improved activity hygiene.

← Back to projects
HubSpotSalesforce

BDR Pipeline System

MQL to booked meeting simulation

✓ SLA first touch: 15 minutes✓ Auto reassign after 2 missed touches✓ Aging buckets: 2 • 5 • 10 days

Goal and success metrics

Reduce lead leakage by enforcing consistent intake, ownership, and follow up rules while improving pipeline visibility.

Time to first touch15 min SLA
MQL → SQL conversionTracked
Meeting set rateTracked
Lead aging2/5/10 day buckets

Workflow logic summary

  1. Intake: New MQLs are normalized, deduped, and assigned a lifecycle stage and initial status.
  2. Assignment: Ownership is assigned by territory/segment rules with fallback routing and an overflow queue.
  3. Follow up SLA: If no activity within 15 minutes, a task + reminder is created; after 2 missed touches, lead is reassigned.
  4. Close loop: Outcomes update statuses and drive reporting for attempts, connects, meetings, and aging.

Data model and hygiene

  • Required fields: Lead source, persona/segment, lifecycle stage, owner, status, last activity date
  • Status definitions: New, Working, Attempted, Connected, Qualified, Meeting Set, Nurture, Disqualified
  • Naming conventions: Consistent workflow, property, and list names to prevent “mystery automation”
  • Validation: Prevents closing a lead without an outcome and notes standard

Tools

HubSpot demo portal • Workflows • Properties • Reporting

Sandbox screenshots

Workflow screenshot placeholder
Workflow automation view (click to enlarge)
Dashboard screenshot placeholder
Dashboard / KPI view (click to enlarge)

Reporting and dashboards

Rep viewToday’s tasks, overdue follow ups, next best action
Manager viewAging, SLA compliance, conversion by source/segment
DefinitionsKPI sheet to keep “attempt” and “connect” consistent

Results

SLA complianceBaseline → AfterReplace with your real measurement
MQL coverageImprovedMeasured in test set of X leads
Reporting accuracyStandardizedOutcome taxonomy enforced

Note: If results are simulated, label them as expected impact based on SLA and governance improvements.

Certifications Grid

Certifications & Professional Accreditations

CRM
UX
IT
Diploma

const certData = { crm: { title: 'CRM Certifications', images: [ 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/24c3b179f7284e438d89833ecf80d846.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/fd0afb5bdaec4200a282e90dd4401ae8.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/4b0240aca9c3467183af1c59a4b8a743.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/334d16bb855046bab974f4dc81b236a8.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/e5a58cff898843f78cba257a9073c816.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/5321087c19fd44cd8e0e7e47996eb9d9.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/bfae95e3bcb542fb9b7001bcf6d36f86.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/4b6a838cbddb4385a8c8f3d0228b4fbc.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/209379fcaee54ad29b480c06e56a668b.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/043c4564f80c4039a7a68e8845f842f0.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/b03384ad6c9c481f8b7d6a5208d2e973.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/9569c25505d44732a99816cd62571a42.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/f3c47848f0bd4e479731feb89d37c384.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/4ab86e91950e424b9abb7c0601419aad.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/8a897d8f23634e7c8aa1e92cb71f8dce.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/2eda56b0da644e4897160b0b54fe7886.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/e832a7aeb5e64faabce08a73046779ac.png', 'https://portfogliotry3copy.carrd.co/assets/images/image02.jpg?v=88226e2f' ] }, ux: { title: 'UX/UI Certifications', images: [ 'https://portfogliotry3copy.carrd.co/assets/images/image02.jpg?v=88226e2f', 'https://via.placeholder.com/800x400?text=UX+Prototyping+and+Testing' ] }, it: { title: 'IT Certifications', images: [ 'https://via.placeholder.com/800x400?text=Google+Analytics+Certificate', 'https://via.placeholder.com/800x400?text=Google+Tag+Manager' ] }, diploma: { title: 'Professional Diploma', images: [ 'https://via.placeholder.com/800x400?text=Digital+Marketing+Diploma', 'https://via.placeholder.com/800x400?text=Capstone+Project+Certificate' ] } }; function openPopup(category) { const data = certData[category]; document.getElementById('popupTitle').innerText = data.title; const grid = document.getElementById('certGrid'); grid.innerHTML = ''; data.images.forEach(img => { const imgTag = document.createElement('img'); imgTag.src = img; imgTag.style = 'width: 120px; height: 120px; object-fit: cover; border-radius: 12px; cursor: pointer;'; imgTag.onclick = () => expandCert(img); grid.appendChild(imgTag); }); document.getElementById('popupOverlay').style.display = 'flex'; } function expandCert(src) { document.getElementById('certPreviewImg').src = src; document.getElementById('certPreview').style.display = 'block'; } function closePopupOverlay(event) { if (event.target.id === 'popupOverlay') { document.getElementById('popupOverlay').style.display = 'none'; document.getElementById('certPreview').style.display = 'none'; } }
Gateway Gamers Campaign

Gateway Gamers
Paid Social Ad Campaign

Role: Lead Digital Strategist

Overview / Objective

Launch a paid social media campaign to grow awareness and increase sign-ups for Gateway Gamers, an online gaming hub.

Target Audience / Market

Targeted casual/competitive gamers aged 18–34 via Facebook & Instagram, based on behavior, interests, and lookalike data.

Strategy

  • Persona segmentation and channel alignment
  • Community-focused messaging with benefit-driven CTAs
  • Daily performance review with A/B creative testing
function showAsset(id) { const img = document.getElementById('assetImage'); const buttons = [1, 2, 3, 4]; // Reset all buttons to default buttons.forEach(i => { document.getElementById('btn' + i).style.background = '#f1f5f9'; document.getElementById('btn' + i).style.color = '#1e1e1e'; }); // Highlight selected document.getElementById('btn' + id).style.background = '#d94a1e'; document.getElementById('btn' + id).style.color = '#ffffff'; // Set image if (id === 1) img.src = 'https://via.placeholder.com/700x420.png?text=Ad+Creative+1'; if (id === 2) img.src = 'https://via.placeholder.com/700x420.png?text=Ad+Creative+2'; if (id === 3) img.src = 'https://via.placeholder.com/700x420.png?text=Landing+Page'; if (id === 4) img.src = 'https://via.placeholder.com/700x420.png?text=Mobile+Preview'; }

Implementation / Execution

  • 5 ad sets launched via Meta Ads Manager
  • Landing pages built in Unbounce with analytics tracking
  • Creative assets coordinated across devices and formats

Campaign Timeline

  • Week 1: Research + creative production
  • Week 2: Ads launched
  • Weeks 3–4: Optimization + reporting

Metrics & Results

375K

Impressions

2.5K

Link Clicks

40%

Membership Growth

Creative Assets

Creative 1Creative 2Landing Page

Testimonial

"The campaign brought incredible visibility and hundreds of engaged new members."

– Michelle Wu, Marketing Director

Reflection / Learnings

  • Community-first messaging outperformed feature-led messaging
  • Short video ads generated higher retention and conversion
  • Daily data reviews enabled quick optimization pivots
🎮 Placeholder for Ad Creative 1 content or image.
📣 Ad Creative 2 with variations or animation.
🧭 Landing page design or live mockup screenshot.
📱 Responsive mobile version view.

Gateway Gamers Paid Social Ad Campaign

Challenge & Goal

Launch a new paid social media ad campaign to increase brand awareness and drive membership sign-ups for Gateway Gamers, an online gaming community.

Campaign Creative

Strategy

  • Identify target audiences of casual and competitive gamers
  • Create engaging ad creative showcasing community benefits
  • A/B test multiple ad variations to optimize performance

Execution

  • Launched ads on Facebook and Instagram targeting interest-based audiences
  • Tested different headlines, ad copy, and call-to-action buttons

Key Metrics

+48%
CTR Increase
5 Keywords
Top 3 SEO Rankings
300M+
Prospects Sourced

Results

375Kimpressions
2.5Klink clicks
40%increase in memberships
"This is the most efficient lead gen engine we’ve ever run."
Jade Li | Finance Portfolio

👋 Hi, I'm John

Digital Advertising Specialist focused on performance marketing, data analytics, and campaign strategy.

📊 Key Performance Metrics

+48%

CTR Increase

5 Keywords

Top 3 SEO Rankings

300M+

Prospects Sourced

📁 Featured Case Study: Ava B2B Campaign

This campaign used AI-driven targeting and hyper-personalization to automate prospecting, boosting response rates and reducing acquisition costs. Highlights include:

  • Strategic use of HubSpot CRM workflows
  • Custom sequences ghostwritten using persona signals
  • Intent data triggering outreach to sales-ready leads
"This is the most efficient lead gen engine we’ve ever run."

🖼️ Campaign Highlights

Campaign Visual 1

Phase 1: Persona Development

Defined target segments and aligned messaging with business goals.

Campaign Visual 2

Phase 2: Email Strategy

Crafted automated sequences with dynamic personalization and timing.

Campaign Visual 3

Phase 3: Lead Scoring

Used engagement metrics and firmographic filters to prioritize outreach.

HubSpot Certifications

Email Marketing Certification

Email Marketing

Credential showing proficiency in HubSpot's email campaign tools and strategy.

Portfolio Projects - SaaS Financial Design
Portfolio Projects

HubSpot Lead Automation

Implemented automated workflows in HubSpot, reducing manual data entry and improving lead response time.

  • +32% MQL Conversion Rate
  • Tools: HubSpot, Zapier
  • Role: CRM Architect

Salesforce Workflow Revamp

Revamped lead routing workflows to streamline sales operations and enable faster handoff between marketing and sales teams.

  • 20% Increase in SQL Hand-Offs
  • Tools: Salesforce, Process Builder
  • Role: Marketing Ops Lead
let currentProjectIndex = 0; const projectUrls = [ 'https://portfogliotry3copy.carrd.co/#portfolio1', 'https://portfogliotry3copy.carrd.co/#portfolio2' ]; function switchTab(tabId) { document.querySelectorAll('.tab-button').forEach(btn => btn.classList.remove('active')); document.querySelectorAll('.tab-content').forEach(tab => tab.classList.remove('active')); document.getElementById(tabId).classList.add('active'); } function openModal(url) { document.getElementById('modalFrame').src = url; document.getElementById('modalOverlay').classList.add('show'); document.getElementById('modalContent').classList.add('show'); document.body.style.overflow = 'hidden'; currentProjectIndex = projectUrls.indexOf(url); } function closeModal() { document.getElementById('modalOverlay').classList.remove('show'); document.getElementById('modalContent').classList.remove('show'); setTimeout(() => { document.getElementById('modalFrame').src = ""; }, 400); document.body.style.overflow = ''; } function nextProject() { currentProjectIndex = (currentProjectIndex + 1) % projectUrls.length; document.getElementById('modalFrame').src = projectUrls[currentProjectIndex]; } function prevProject() { currentProjectIndex = (currentProjectIndex - 1 + projectUrls.length) % projectUrls.length; document.getElementById('modalFrame').src = projectUrls[currentProjectIndex]; }

Twitter

Chatbot Designer | Portfolio Project
Portfolio Projects
HubSpot Icon

HubSpot Lead Automation

Implemented automated workflows in HubSpot, reducing manual data entry and improving lead response time.

  • +32% MQL Conversion Rate
  • Tools: HubSpot, Zapier
  • Role: CRM Architect
CRM Automation
Salesforce Icon

Salesforce Workflow Revamp

Revamped lead routing workflows to streamline sales operations and enable faster handoff between marketing and sales teams.

  • 20% Increase in SQL Hand-Offs
  • Tools: Salesforce, Process Builder
  • Role: Marketing Ops Lead
Workflow Optimization
let currentProjectIndex = 0; const projectUrls = [ 'https://portfogliotry3copy.carrd.co/#portfolio1', 'https://portfogliotry3copy.carrd.co/#portfolio2' ]; function switchTab(tabId) { document.querySelectorAll('.tab-button').forEach(btn => btn.classList.remove('active')); document.querySelectorAll('.tab-content').forEach(tab => { tab.classList.remove('active'); tab.style.display = 'none'; }); document.querySelector(`.tab-button[onclick="switchTab('${tabId}')"]`).classList.add('active'); const activeTab = document.getElementById(tabId); activeTab.classList.add('active'); activeTab.style.display = 'grid'; } function openModal(url) { document.getElementById('modalFrame').src = url; document.getElementById('modalOverlay').style.display = 'flex'; currentProjectIndex = projectUrls.indexOf(url); } function closeModal() { document.getElementById('modalOverlay').style.display = 'none'; document.getElementById('modalFrame').src = ""; } function outsideClick(e) { if (e.target.id === 'modalOverlay') { closeModal(); } } function nextProject() { currentProjectIndex = (currentProjectIndex + 1) % projectUrls.length; document.getElementById('modalFrame').src = projectUrls[currentProjectIndex]; }
Chatbot Designer | Portfolio Project
Portfolio Projects
HubSpot Icon

HubSpot Lead Automation

Implemented automated workflows in HubSpot, reducing manual data entry and improving lead response time.

  • +32% MQL Conversion Rate
  • Tools: HubSpot, Zapier
  • Role: CRM Architect
CRM Automation
Salesforce Icon

Salesforce Workflow Revamp

Revamped lead routing workflows to streamline sales operations and enable faster handoff between marketing and sales teams.

  • 20% Increase in SQL Hand-Offs
  • Tools: Salesforce, Process Builder
  • Role: Marketing Ops Lead
Workflow Optimization
function switchTab(tabId) { document.querySelectorAll('.tab-button').forEach(btn => btn.classList.remove('active')); document.querySelectorAll('.tab-content').forEach(tab => { tab.classList.remove('active'); tab.style.display = 'none'; }); document.querySelector(`.tab-button[onclick="switchTab('${tabId}')"]`).classList.add('active'); const activeTab = document.getElementById(tabId); activeTab.classList.add('active'); activeTab.style.display = 'grid'; } function openModal(url) { document.getElementById('modalFrame').src = url; document.getElementById('modalOverlay').style.display = 'flex'; } function closeModal() { document.getElementById('modalOverlay').style.display = 'none'; document.getElementById('modalFrame').src = ""; } function outsideClick(e) { if (e.target.id === 'modalOverlay') { closeModal(); } }
Chatbot Designer | Portfolio Project

I'm looking for my next role. Say Hi!


Chatbot Designer | Testimonials

Testimonials

"Delivered beyond expectations. Automation setup was seamless and fully optimized for our pipeline."

— Marketing Director

"Exceptionally skilled at CRM integrations. Communication was clear and process was highly organized."

— CRM Operations Lead

"Took initiative and delivered innovative solutions for optimizing our sales workflows."

— Sales Manager

Certifications & Professional Accreditations

CRM
UX
IT
Diploma

const certData = { crm: { title: 'CRM Certifications', images: [ 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/24c3b179f7284e438d89833ecf80d846.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/fd0afb5bdaec4200a282e90dd4401ae8.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/4b0240aca9c3467183af1c59a4b8a743.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/334d16bb855046bab974f4dc81b236a8.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/e5a58cff898843f78cba257a9073c816.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/5321087c19fd44cd8e0e7e47996eb9d9.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/bfae95e3bcb542fb9b7001bcf6d36f86.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/4b6a838cbddb4385a8c8f3d0228b4fbc.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/209379fcaee54ad29b480c06e56a668b.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/043c4564f80c4039a7a68e8845f842f0.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/b03384ad6c9c481f8b7d6a5208d2e973.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/9569c25505d44732a99816cd62571a42.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/f3c47848f0bd4e479731feb89d37c384.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/4ab86e91950e424b9abb7c0601419aad.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/8a897d8f23634e7c8aa1e92cb71f8dce.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/2eda56b0da644e4897160b0b54fe7886.png', 'https://hubspot-credentials-na1.s3.amazonaws.com/prod/badges/user/e832a7aeb5e64faabce08a73046779ac.png', 'https://portfogliotry3copy.carrd.co/assets/images/image02.jpg?v=88226e2f' ] }, ux: { title: 'UX/UI Certifications', images: [ 'https://portfogliotry3copy.carrd.co/assets/images/image02.jpg?v=88226e2f', 'https://via.placeholder.com/800x400?text=UX+Prototyping+and+Testing' ] }, it: { title: 'IT Certifications', images: [ 'https://via.placeholder.com/800x400?text=Google+Analytics+Certificate', 'https://via.placeholder.com/800x400?text=Google+Tag+Manager' ] }, diploma: { title: 'Professional Diploma', images: [ 'https://via.placeholder.com/800x400?text=Digital+Marketing+Diploma', 'https://via.placeholder.com/800x400?text=Capstone+Project+Certificate' ] } }; function openPopup(category) { const data = certData[category]; document.getElementById('popupTitle').innerText = data.title; const grid = document.getElementById('certGrid'); grid.innerHTML = ''; data.images.forEach(img => { const imgTag = document.createElement('img'); imgTag.src = img; imgTag.style = 'width: 100px; height: 100px; object-fit: cover; border-radius: 12px; cursor: pointer;'; imgTag.onclick = () => expandCert(img); grid.appendChild(imgTag); }); document.getElementById('popupOverlay').style.display = 'flex'; } function expandCert(src) { document.getElementById('certPreviewImg').src = src; document.getElementById('certPreview').style.display = 'block'; } function closePopupOverlay(event) { if (event.target.id === 'popupOverlay') { document.getElementById('popupOverlay').style.display = 'none'; document.getElementById('certPreview').style.display = 'none'; } }

Purus in mollis nunc sed semper risus tortor pretium.