The EdTech Customer Success Health Check

A comprehensive audit tool to identify gaps in your educational customer experience and turn onboarding into a retention engine.

Most CS teams default to generic B2B playbooks when serving schools, districts, and institutions. This assessment gives you an honest snapshot of where your team is strong, where it’s stretched, and where faculty users are slipping through the cracks across six dimensions of educational customer success.

Each question is rated on a 1 to 5 scale, where 1 means major gaps and 5 means exceptional capabilities driving retention.

Where your team is treating educational buyers like standard B2B and where that’s costing you renewals.

A scored snapshot across 6 dimensions plus the 2 to 3 highest-leverage moves for the next 90 days.

Partner in Publishing (PIP) has spent 18+ years helping EdTech companies grow — from market research to sales acceleration, content strategy, and AI-enabled outreach.
This tool reflects the same diagnostic framework we use when onboarding new clients.

START THE ASSESSMENT

5 minutes, 18 questions, a clear retention plan.

Category
'); iframeDoc.close();const iframeSummary = summary.cloneNode(true); iframeSummary.style.display = 'block'; iframeDoc.body.appendChild(iframeSummary); if (!iframeSummary) { throw new Error('No PDF summary found in isolated iframe.'); }const pageElements = Array.from(iframeSummary.querySelectorAll('.pdf-page')); if (!pageElements.length) { throw new Error('No PDF pages were found in isolated summary.'); } const images = Array.from(iframeSummary.querySelectorAll('img'));await Promise.all(images.map((img) => { if (img.complete) return Promise.resolve(); return new Promise((resolve) => { img.addEventListener('load', resolve, { once: true }); img.addEventListener('error', resolve, { once: true }); }); }));const pdf = new JsPdfCtor({ orientation: 'portrait', unit: 'px', format: [794, 1123], putOnlyUsedFonts: true, hotfixes: ['px_scaling'] });for (let i = 0; i < pageElements.length; i++) { const pageEl = pageElements[i]; const renderPageCanvas = async (el, useCors, removeBg) => { let target = el; if (removeBg) { target = el.cloneNode(true); target.style.position = 'fixed'; target.style.left = '-99999px'; target.style.top = '0'; const bgImage = target.querySelector('img'); if (bgImage) bgImage.remove(); target.style.background = '#ffffff'; document.body.appendChild(target); }try { return await html2canvasLib(target, { scale: 1.5, useCORS: useCors, allowTaint: false, backgroundColor: '#ffffff', scrollX: 0, scrollY: 0, width: 794, height: 1123, windowWidth: 794, windowHeight: 1123 }); } finally { if (removeBg && target && target.parentNode) { target.parentNode.removeChild(target); } } };let canvas; try { canvas = await renderPageCanvas(pageEl, true, false); canvas.toDataURL('image/jpeg', 0.98); } catch (pageErr) { canvas = await renderPageCanvas(pageEl, false, true); console.warn('PDF page fallback used (background not exported):', pageErr); }const imgData = canvas.toDataURL('image/jpeg', 0.98); if (i > 0) pdf.addPage(); pdf.addImage(imgData, 'JPEG', 0, 0, 794, 1123);// --- SOLUCIÓN PARA LOS ENLACES (LINKS) --- const anchorTags = pageEl.querySelectorAll('a'); anchorTags.forEach(ctaLink => { if (typeof pdf.link === 'function' && ctaLink.href) { const pageRect = pageEl.getBoundingClientRect(); const linkRect = ctaLink.getBoundingClientRect(); const linkX = Math.max(0, linkRect.left - pageRect.left); const linkY = Math.max(0, linkRect.top - pageRect.top); const linkW = Math.max(1, linkRect.width); const linkH = Math.max(1, linkRect.height); pdf.link(linkX, linkY, linkW, linkH, { url: ctaLink.href }); } }); }const pdfBlob = pdf.output('blob'); const blobUrl = URL.createObjectURL(pdfBlob); const link = document.createElement('a'); link.href = blobUrl; link.download = 'EdTech-CS-Checklist.pdf'; link.style.display = 'none'; document.body.appendChild(link); link.click(); setTimeout(() => { URL.revokeObjectURL(blobUrl); link.remove(); }, 1500); } catch (err) { console.error('Error generating PDF:', err); const msg = (err && err.message) ? err.message : 'Unknown error generating PDF.'; alert('Could not download the PDF. Check the console for technical details.\n' + msg); } finally { if (pdfIframe && pdfIframe.parentNode) { pdfIframe.parentNode.removeChild(pdfIframe); } summary.style.display = 'none'; btn.textContent = 'Download Full Report'; } });}btnNextCS.addEventListener('click', () => { if (!isStepCompleteCS(currentStepCS)) { showStepErrorCS(); return; } if (currentStepCS < categoriesCS.length - 1) { currentStepCS++; renderStepCS(); } else { calculateResultCS(); } });btnBackCS.addEventListener('click', () => { if (currentStepCS > 0) { currentStepCS--; renderStepCS(); } });renderStepCS(); });
Category
'); iframeDoc.close();const iframeSummary = summary.cloneNode(true); iframeSummary.style.display = 'block'; iframeDoc.body.appendChild(iframeSummary); if (!iframeSummary) { throw new Error('No PDF summary found in isolated iframe.'); }const pageElements = Array.from(iframeSummary.querySelectorAll('.pdf-page')); if (!pageElements.length) { throw new Error('No PDF pages were found in isolated summary.'); } const images = Array.from(iframeSummary.querySelectorAll('img'));await Promise.all(images.map((img) => { if (img.complete) return Promise.resolve(); return new Promise((resolve) => { img.addEventListener('load', resolve, { once: true }); img.addEventListener('error', resolve, { once: true }); }); }));const pdf = new JsPdfCtor({ orientation: 'portrait', unit: 'px', format: [794, 1123], putOnlyUsedFonts: true, hotfixes: ['px_scaling'] });for (let i = 0; i < pageElements.length; i++) { const pageEl = pageElements[i]; const renderPageCanvas = async (el, useCors, removeBg) => { let target = el; if (removeBg) { target = el.cloneNode(true); target.style.position = 'fixed'; target.style.left = '-99999px'; target.style.top = '0'; const bgImage = target.querySelector('img'); if (bgImage) bgImage.remove(); target.style.background = '#ffffff'; document.body.appendChild(target); }try { return await html2canvasLib(target, { scale: 2, useCORS: useCors, allowTaint: false, backgroundColor: '#ffffff', scrollX: 0, scrollY: 0, width: 794, height: 1123, windowWidth: 794, windowHeight: 1123 }); } finally { if (removeBg && target && target.parentNode) { target.parentNode.removeChild(target); } } };let canvas; try { canvas = await renderPageCanvas(pageEl, true, false); // Throws if canvas is tainted canvas.toDataURL('image/jpeg', 0.98); } catch (pageErr) { canvas = await renderPageCanvas(pageEl, false, true); console.warn('PDF page fallback used (background not exported):', pageErr); }const imgData = canvas.toDataURL('image/jpeg', 0.98); if (i > 0) pdf.addPage(); pdf.addImage(imgData, 'JPEG', 0, 0, 794, 1123);const ctaLink = pageEl.querySelector('a[href="https://partnerinpublishing.com/contact-us/"]'); if (ctaLink && typeof pdf.link === 'function') { const pageRect = pageEl.getBoundingClientRect(); const linkRect = ctaLink.getBoundingClientRect(); const linkX = Math.max(0, linkRect.left - pageRect.left); const linkY = Math.max(0, linkRect.top - pageRect.top); const linkW = Math.max(1, linkRect.width); const linkH = Math.max(1, linkRect.height); pdf.link(linkX, linkY, linkW, linkH, { url: 'https://partnerinpublishing.com/contact-us/' }); } }const pdfBlob = pdf.output('blob'); const blobUrl = URL.createObjectURL(pdfBlob); const link = document.createElement('a'); link.href = blobUrl; link.download = 'EdTech-Growth-Checklist.pdf'; link.style.display = 'none'; document.body.appendChild(link); link.click(); setTimeout(() => { URL.revokeObjectURL(blobUrl); link.remove(); }, 1500); } catch (err) { console.error('Error al generar PDF:', err); const msg = (err && err.message) ? err.message : 'Unknown error generating PDF.'; alert('No se pudo descargar el PDF. Revisa consola para detalle técnico.\n' + msg); } finally { if (pdfIframe && pdfIframe.parentNode) { pdfIframe.parentNode.removeChild(pdfIframe); } summary.style.display = 'none'; btn.textContent = 'Download Full Report'; } });}btnNext.addEventListener('click', () => { if (currentStep < categories.length - 1) { currentStep++; renderStep(); } else { calculateResult(); } });btnBack.addEventListener('click', () => { if (currentStep > 0) { currentStep--; renderStep(); } });renderStep(); });

Social Media Strategy

From CEO thought leadership to brand engagement, this guide shows how to turn scrolls into sales.

Website Content & SEO

Your site is your handshake—learn how to structure messaging that drives conversions.

Video Marketing

Boost trust, engagement, and leads with video content that converts.

Strategic Copywriting

Great copy converts. Download this guide to see how messaging impacts every touchpoint—from email to website.