Infographic: A Smoother Arrival at Hai Phong (HPH) Airport https://cdn.tailwindcss.com https://cdn.jsdelivr.net/npm/chart.js Goal: Organize/Filter -> Viz/Method: Interactive HTML buttons -> Interaction: Click to filter all dynamic content -> Justification: Personalizes the entire infographic based on the most critical user variable, making the information highly relevant. -> Library/Method: Vanilla JS. – Report Info: Airport arrival steps -> Goal: Compare/Organize -> Viz/Method: HTML/CSS side-by-side flowcharts -> Interaction: Flowcharts dynamically update based on visa status selection -> Justification: A visual flowchart is more intuitive than text. The direct comparison clearly shows how the expedited service streamlines the process by bypassing queues. -> Library/Method: HTML/CSS with Tailwind. NO SVG/Mermaid. – Report Info: Time spent in queues -> Goal: Compare/Inform -> Viz/Method: Chart.js Bar Chart -> Interaction: Chart data updates based on visa status, showing different wait times for E-visa vs. VOA. -> Justification: Provides a powerful, quantitative visualization of the primary benefitβ€”time saved. The chart makes the abstract concept of ‘long queues’ concrete. -> Library/Method: Chart.js (Canvas). – Report Info: Pre-arrival requirements -> Goal: Inform -> Viz/Method: Styled HTML list within a card -> Interaction: Static -> Justification: Presents essential information in a clear, scannable format that is easy to reference. -> Library/Method: HTML/CSS with Tailwind. – Report Info: Trustworthiness of the service -> Goal: Inform/Persuade -> Viz/Method: ‘Trust Badge’ cards with Unicode icons -> Interaction: Static -> Justification: Breaks down credibility points into easily digestible, visually appealing components to build user confidence. -> Library/Method: HTML/CSS with Tailwind, Unicode. –> body { font-family: ‘Inter’, sans-serif; background-color: #CAF0F8; } .card { background-color: white; border-radius: 0.75rem; box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); transition: transform 0.2s ease-in-out; } .card:hover { transform: translateY(-5px); } .btn { border-radius: 0.5rem; font-weight: 600; padding: 0.75rem 1.5rem; transition: all 0.3s ease; } .btn-primary { background-color: #0077B6; color: white; } .btn-primary:hover { background-color: #0096C7; } .btn-secondary { background-color: #90E0EF; color: #0077B6; } .btn-secondary.active, .btn-secondary:hover { background-color: #0077B6; color: white; box-shadow: 0 0 0 3px #48CAE4; } .flow-step { display: flex; align-items: center; padding: 1rem; border-radius: 0.5rem; border: 1px solid #E0E0E0; background-color: #fafafa; } .flow-step-icon { font-size: 1.5rem; margin-right: 1rem; flex-shrink: 0; width: 40px; text-align: center; } .flow-connector { height: 30px; width: 2px; background-color: #48CAE4; margin: 0.5rem auto; } .strikethrough { text-decoration: line-through; color: #9E9E9E; } .chart-container { position: relative; width: 100%; max-width: 600px; margin-left: auto; margin-right: auto; height: 350px; max-height: 400px; }

Your Arrival at Hai Phong Airport

Standard Wait vs. Expedited Entry

Navigating airport formalities can be slow and stressful. This guide visualizes your journey and shows how an expedited service can transform your arrival experience in Vietnam.

1. First, Select Your Visa Status

Standard Process

Expedited Process

2. See the Time You Can Save

This chart illustrates the estimated average time spent in queues during peak hours. The expedited service helps you bypass these delays entirely.

3. Ready for a Faster Arrival?

Avoid the queues and start your Vietnam adventure sooner. Our team meets you upon arrival and escorts you through a priority lane.

Book Expedited Entry Service

βœ… Essential Pre-Arrival Checklist

  • Passport: Valid for 6+ months.
  • E-Visa: Printed copy ready.
  • VOA Holders: MUST have printed Approval Letter, completed NA1 Form with photo, and cash (USD/VND) for stamping fee.
  • Customs: Know the duty-free limits and declare items if necessary.

πŸ€” How It Works

  • 1. We Meet You: Our staff greets you after you disembark.
  • 2. We Handle Paperwork: For VOA, we handle the visa stamping process.
  • 3. We Fast-Track You: We escort you through a priority immigration lane.

🌟 Why Trust Us?

  • ⏳ 15+ Years of Experience
  • πŸ›‘οΈ 100% Money-Back Guarantee
  • πŸ’³ Secure Payments with PayPal Protection
  • 🌟 Verified by Traveler Reviews

Infographic by VietnamImmigration.org

document.addEventListener(‘DOMContentLoaded’, () => { const visaSelector = document.getElementById(‘visa-selector’); const standardFlow = document.getElementById(‘standard-flow’); const expeditedFlow = document.getElementById(‘expedited-flow’); const timeChartCanvas = document.getElementById(‘timeChart’).getContext(‘2d’); let timeChart; const processData = { evisa: { standard: [ { icon: ‘✈️’, text: ‘Disembark Aircraft’ }, { icon: ‘πŸ›‚’, text: ‘Queue for Immigration’ }, { icon: ‘πŸ›„’, text: ‘Baggage Claim’ }, { icon: ‘βœ…’, text: ‘Customs Check’ }, { icon: ‘πŸ‘‹’, text: ‘Exit Airport’ } ], expedited: [ { icon: ‘✈️’, text: ‘Disembark Aircraft’ }, { icon: ‘🀝’, text: ‘Meet Our Agent’ }, { icon: ‘πŸ’¨’, text: ‘Fast-Track Immigration’ }, { icon: ‘πŸ›„’, text: ‘Baggage Claim’ }, { icon: ‘βœ…’, text: ‘Customs Check’ }, { icon: ‘πŸ‘‹’, text: ‘Exit Airport’ } ] }, voa: { standard: [ { icon: ‘✈️’, text: ‘Disembark Aircraft’ }, { icon: ‘πŸ“„’, text: ‘Queue for Visa Stamping’ }, { icon: ‘πŸ›‚’, text: ‘Queue for Immigration’ }, { icon: ‘πŸ›„’, text: ‘Baggage Claim’ }, { icon: ‘βœ…’, text: ‘Customs Check’ }, { icon: ‘πŸ‘‹’, text: ‘Exit Airport’ } ], expedited: [ { icon: ‘✈️’, text: ‘Disembark Aircraft’ }, { icon: ‘🀝’, text: ‘Meet Our Agent’ }, { icon: ‘πŸ“’, text: ‘Agent Handles Visa Stamping’, strikethrough: false }, { icon: ‘πŸ’¨’, text: ‘Fast-Track Immigration’ }, { icon: ‘πŸ›„’, text: ‘Baggage Claim’ }, { icon: ‘βœ…’, text: ‘Customs Check’ }, { icon: ‘πŸ‘‹’, text: ‘Exit Airport’ } ] } }; const chartData = { evisa: { labels: [‘Standard Process’, ‘Expedited Process’], datasets: [{ label: ‘Wait Time (minutes)’, data: [45, 5], backgroundColor: [‘#48CAE4’, ‘#0077B6’], borderColor: [‘#00B4D8’, ‘#0077B6’], borderWidth: 1 }] }, voa: { labels: [‘Standard Process’, ‘Expedited Process’], datasets: [ { label: ‘Visa Stamping Queue’, data: [60, 5], backgroundColor: ‘#90E0EF’, borderColor: ‘#48CAE4’, borderWidth: 1 }, { label: ‘Immigration Queue’, data: [45, 5], backgroundColor: ‘#48CAE4’, borderColor: ‘#00B4D8’, borderWidth: 1 } ] } }; function createFlowHtml(steps) { return steps.map((step, index) => `
${step.icon}
${step.text}
${index < steps.length – 1 ? '
‘ : ”} `).join(”); } function wrapLabel(str) { const maxLength = 16; if (str.length { if ((currentLine + ‘ ‘ + word).trim().length > maxLength) { lines.push(currentLine.trim()); currentLine = word; } else { currentLine = (currentLine + ‘ ‘ + word).trim(); } }); if (currentLine) { lines.push(currentLine.trim()); } return lines; } function updateDisplay(type) { standardFlow.innerHTML = createFlowHtml(processData[type].standard); expeditedFlow.innerHTML = createFlowHtml(processData[type].expedited); updateChart(type); } function updateChart(type) { const data = chartData[type]; const isStacked = type === ‘voa’; if (timeChart) { timeChart.destroy(); } timeChart = new Chart(timeChartCanvas, { type: ‘bar’, data: data, options: { responsive: true, maintainAspectRatio: false, scales: { x: { stacked: isStacked, grid: { display: false } }, y: { stacked: isStacked, beginAtZero: true, title: { display: true, text: ‘Estimated Wait Time (minutes)’ } } }, plugins: { legend: { display: isStacked, position: ‘bottom’ }, tooltip: { callbacks: { title: function(tooltipItems) { const item = tooltipItems[0]; let label = item.chart.data.labels[item.dataIndex]; return Array.isArray(label) ? label.join(‘ ‘) : label; }, footer: function(tooltipItems) { if (!isStacked) return; let total = 0; tooltipItems.forEach(function(tooltipItem) { total += tooltipItem.parsed.y; }); return ‘Total Wait: ‘ + total + ‘ min’; } } } } } }); } visaSelector.addEventListener(‘click’, (e) => { if (e.target.tagName === ‘BUTTON’) { const selectedType = e.target.dataset.type; visaSelector.querySelectorAll(‘button’).forEach(btn => { btn.classList.remove(‘active’); }); e.target.classList.add(‘active’); updateDisplay(selectedType); } }); updateDisplay(‘evisa’); });
evisa.vn Avatar

Published by