Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
315 lines (308 loc) · 22.7 KB
/
Copy pathindex.html
File metadata and controls
315 lines (308 loc) · 22.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TextQL Workshops</title>
<style>
:root{--green:#58a68d;--green-dark:#2f6f5c;--green-soft:#e9f2ee;--ink:#1c2b27;--muted:#5d6b67;--border:#dde7e3;--bg-soft:#f4f8f6}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--bg-soft)}
header{background:#0f1f1b;color:#fff;padding:0 28px;height:56px;display:flex;align-items:center}
header .logo{font-weight:800;font-size:16px}header .logo span{color:var(--green)}
.hero{background:linear-gradient(135deg,#0f1f1b 0%,#2f6f5c 100%);color:#fff;padding:52px 28px 60px;text-align:center}
.hero h1{font-size:34px;margin-bottom:10px}
.hero p{color:#d7eee6;font-size:17px;max-width:680px;margin:0 auto}
.wrap{max-width:1060px;margin:0 auto 60px;padding:0 24px}
.wrap>h2{font-size:15px;text-transform:uppercase;letter-spacing:1.5px;color:var(--green-dark);margin:38px 0 16px}
.wrap>h2:first-of-type{margin-top:30px}
.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:22px}
.card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:24px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:10px;box-shadow:0 1px 3px rgba(28,43,39,.06);transition:box-shadow .15s,transform .15s}
.card:hover{box-shadow:0 8px 24px rgba(47,111,92,.18);transform:translateY(-2px)}
.card .tags{display:flex;gap:8px;flex-wrap:wrap}
.tag{font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:99px;background:var(--green-soft);color:var(--green-dark)}
.tag.level{background:#fdf9ee;color:#8a6d1f}
.card h3{font-size:19px;line-height:1.3}
.card p{font-size:14.5px;color:var(--muted);flex:1}
.card .meta{font-size:13px;color:var(--muted);display:flex;gap:14px;border-top:1px solid var(--border);padding-top:12px}
.card.soon{opacity:.6;pointer-events:none}
.paths .card{background:var(--green-soft);border:1.5px solid var(--green);box-shadow:none}
.paths .card h3{font-size:16px}
.paths .card p{font-size:13.5px}
.paths .card .meta{border-top-color:#cfe3db;font-weight:600;color:var(--green-dark)}
footer{text-align:center;color:var(--muted);font-size:13px;padding:30px}
</style>
</head>
<body>
<header><div class="logo">TextQL <span>Workshops</span></div></header>
<div class="hero">
<h1>TextQL Workshops</h1>
<p>Hands-on, self-paced guides for learning the TextQL platform — run them yourself, or follow along with your TextQL team.</p>
</div>
<div class="wrap">
<h2>Not sure where to start? Pick your path</h2>
<div class="catalog paths">
<a class="card" href="poc-in-a-week/index.html">
<div class="tags"><span class="tag">Path</span><span class="tag level">Evaluating TextQL</span></div>
<h3>🧪 Evaluating? Start with POC in a Week</h3>
<p>The five-day evaluation structure: success criteria first, the cold/warm question gauntlet, a scored readout. Then: a domain starter pack or Build Your Ontology.</p>
<div class="meta"><span>POC in a Week → Starter Pack → Connect Your Data</span></div>
</a>
<a class="card" href="connect-your-data/index.html">
<div class="tags"><span class="tag">Path</span><span class="tag level">New deployment</span></div>
<h3>🚀 Deploying? Stand up the platform</h3>
<p>Connect the data, build the governed ontology, set up identity and governance — then turn the business teams loose.</p>
<div class="meta"><span>Connect → Build Your Ontology → Admin → Self-Service</span></div>
</a>
<a class="card" href="self-service-analytics/index.html">
<div class="tags"><span class="tag">Path</span><span class="tag level">New user</span></div>
<h3>💬 New user? Start with Self-Service Analytics</h3>
<p>Ask, refine, trust, and share — then your role workshop (Finance, Sales, CS) and automation.</p>
<div class="meta"><span>Self-Service → role workshop → Automation</span></div>
</a>
</div>
<h2>For business teams</h2>
<div class="catalog">
<a class="card" href="self-service-analytics/index.html">
<div class="tags"><span class="tag">Analytics</span><span class="tag level">Beginner · Non-technical</span></div>
<h3>Self-Service Analytics</h3>
<p>Answer your own questions, build your own charts and dashboards, and automate your own reporting — in plain English, with Ana. No SQL required.</p>
<div class="meta"><span>⏱️ ~2 hours</span><span>💻 Browser only</span></div>
</a>
<a class="card" href="dashboards-reporting/index.html">
<div class="tags"><span class="tag">Dashboards</span><span class="tag level">Beginner–Intermediate</span></div>
<h3>Dashboards & Reporting</h3>
<p>Charts that communicate, polished reports, and live interactive dashboards — built through conversation, then published and maintained like real products.</p>
<div class="meta"><span>⏱️ ~2 hours</span><span>💻 Browser only</span></div>
</a>
<a class="card" href="automation/index.html">
<div class="tags"><span class="tag">Automation</span><span class="tag level">Intermediate</span></div>
<h3>Automation Deep-Dive</h3>
<p>Make analysis run without you: scheduled playbooks, templates that batch across entities, and feed agents that watch your data continuously.</p>
<div class="meta"><span>⏱️ ~2 hours</span><span>💻 Browser only</span></div>
</a>
<a class="card" href="sales-gtm/index.html">
<div class="tags"><span class="tag">Sales & GTM</span><span class="tag level">Beginner · Non-technical</span></div>
<h3>TextQL for Sales & GTM</h3>
<p>Pipeline answers in plain English, account research that combines CRM with the outside world, meeting prep that writes itself, automated deal hygiene.</p>
<div class="meta"><span>⏱️ ~90 min</span><span>💻 Browser only</span></div>
</a>
<a class="card" href="finance-teams/index.html">
<div class="tags"><span class="tag">Finance</span><span class="tag level">Beginner · Non-technical</span></div>
<h3>TextQL for Finance Teams</h3>
<p>Close & flux analysis, revenue questions, the board pack, an automated monthly rhythm — and definitions Finance governs once, for everyone.</p>
<div class="meta"><span>⏱️ ~2 hours</span><span>🎯 FP&A, controllers, finance ops</span></div>
</a>
<a class="card" href="customer-success/index.html">
<div class="tags"><span class="tag">Customer Success</span><span class="tag level">Beginner · Non-technical</span></div>
<h3>TextQL for Customer Success</h3>
<p>Account health snapshots, QBR prep that writes itself, churn signals with root cause, and a book of business that watches itself.</p>
<div class="meta"><span>⏱️ ~90 min</span><span>🎯 CSMs & CS leaders</span></div>
</a>
<a class="card" href="data-apps/index.html">
<div class="tags"><span class="tag">Builder</span><span class="tag level">BETA</span></div>
<h3>Build Data Apps with Ana</h3>
<p>Turn a trusted analysis into an interactive app: viewer-driven filters and what-ifs, shared under each viewer's own permissions, maintained conversationally.</p>
<div class="meta"><span>⏱️ ~2 hours</span><span>🎯 Analysts & builders</span></div>
</a>
<a class="card" href="executives/index.html">
<div class="tags"><span class="tag">Executive</span><span class="tag level">45-min taster</span></div>
<h3>TextQL for Executives</h3>
<p>Ask your data the questions you'd ask your team, verify any answer's math, and leave with a morning briefing that arrives before you ask.</p>
<div class="meta"><span>⏱️ 45 min</span><span>🎯 C-suite & VPs</span></div>
</a>
</div>
<h2>For data & platform teams</h2>
<div class="catalog">
<a class="card" href="connect-your-data/index.html">
<div class="tags"><span class="tag">Connectors</span><span class="tag level">Technical</span></div>
<h3>Connect Your Data</h3>
<p>Every kind of data source connected correctly the first time — warehouses, private networks, BI tools, files, Drive, and APIs — with credentials done right.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Data engineers & admins</span></div>
</a>
<a class="card" href="ontology-operations/index.html">
<div class="tags"><span class="tag">Ontology</span><span class="tag level">Technical</span></div>
<h3>Ontology Operations</h3>
<p>Run a governed semantic layer in production: git workflows, access control, accuracy testing with golden datasets, and scaling across teams.</p>
<div class="meta"><span>⏱️ ~2 hours</span><span>🎯 Data teams</span></div>
</a>
<a class="card" href="row-level-security/index.html">
<div class="tags"><span class="tag">Security</span><span class="tag level">Technical</span></div>
<h3>Row-Level Security & Identity-Aware Access</h3>
<p>Each user sees only their rows — without maintaining two copies of your access rules. Per-member auth (zero duplication), fail-closed ontology guards, mirroring existing warehouse policies, adversarial verification, and the lockdown sequence.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 DBAs + workspace admins</span></div>
</a>
<a class="card" href="admin-governance/index.html">
<div class="tags"><span class="tag">Admin</span><span class="tag level">Technical</span></div>
<h3>Admin & Governance</h3>
<p>Identity and SSO, roles and permissions, connector governance, capability and model controls, monitoring, and day-to-day operations at scale.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Workspace admins</span></div>
</a>
<a class="card" href="build-your-ontology/index.html">
<div class="tags"><span class="tag">Ontology</span><span class="tag level">Technical</span></div>
<h3>Build Your Ontology, End to End</h3>
<p>Turn databases and documents into a governed, queryable ontology — two tracks, a before/after baseline, and role-based access.</p>
<div class="meta"><span>⏱️ Half day</span><span>🎯 Data teams</span></div>
</a>
<a class="card" href="data-quality/index.html">
<div class="tags"><span class="tag">Data Quality</span><span class="tag level">Technical</span></div>
<h3>Data Quality & Validation Deep-Dive</h3>
<p>Golden datasets, eval cases, scheduled drift detection, reconciliation workflows, and a data-quality agent — accuracy checked, not asserted.</p>
<div class="meta"><span>⏱️ ~2 hours</span><span>🎯 Data & analytics engineers</span></div>
</a>
<a class="card" href="bi-migration/index.html">
<div class="tags"><span class="tag">BI Migration</span><span class="tag level">Technical</span></div>
<h3>Migrate from Your BI Tool</h3>
<p>Inventory the estate, translate the semantic layer, rebuild the flagship dashboard, prove parity, and cut over on usage — not hope.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Analytics engineers & BI admins</span></div>
</a>
<a class="card" href="context-stack/index.html">
<div class="tags"><span class="tag">Context & RBAC</span><span class="tag level">Semi-technical</span></div>
<h3>The Context Stack — Personal, Role & Org Context</h3>
<p>How Ana behaves for different people: personal preferences, the shared org dictionary, and role personas with auditable scope — same question, different profiles.</p>
<div class="meta"><span>⏱️ ~2 hours</span><span>🎯 Platform owners & admins</span></div>
</a>
<a class="card" href="vpc-deployment/index.html">
<div class="tags"><span class="tag">Deployment</span><span class="tag level">Technical</span></div>
<h3>Deploy TextQL in Your VPC</h3>
<p>Single-tenant deployment end to end: prerequisites and architecture, Helm install, inference configuration, validation, operations, and the doctor.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Platform & infra teams</span></div>
</a>
<a class="card" href="poc-in-a-week/index.html">
<div class="tags"><span class="tag">Evaluation</span><span class="tag level">Guided journey</span></div>
<h3>POC in a Week</h3>
<p>A five-day evaluation structure: success criteria first, the cold/warm question gauntlet, automation on day four, and a scored readout on day five.</p>
<div class="meta"><span>⏱️ 5 days</span><span>🎯 Data team + champion</span></div>
</a>
</div>
<h2>Domain starter packs</h2>
<div class="catalog">
<a class="card" href="healthcare-starter/index.html">
<div class="tags"><span class="tag">Healthcare & Life Sciences</span><span class="tag level">Technical</span></div>
<h3>Implement the Healthcare Starter Pack</h3>
<p>From empty environment to governed claims & clinical analytics: connect, validate against your schema, light up the terminology layer, and make it yours.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 HCLS data teams</span></div>
</a>
<a class="card" href="finserv-starter/index.html">
<div class="tags"><span class="tag">Banking & Financial Services</span><span class="tag level">Technical</span></div>
<h3>Implement the FinServ Starter Pack</h3>
<p>Governed banking analytics: delinquency & charge-offs, deposits & NIM, payments & fraud — connect, validate, and grow the model from your North Star.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Banking data teams</span></div>
</a>
<a class="card" href="wealth-starter/index.html">
<div class="tags"><span class="tag">Wealth & Asset Management</span><span class="tag level">Technical</span></div>
<h3>Implement the Wealth Starter Pack</h3>
<p>Governed AUM, flows, performance, and concentration risk — at the resolved household, not the account. Connect, validate, and make the definitions yours.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Wealth/AM data teams</span></div>
</a>
<a class="card" href="insurance-starter/index.html">
<div class="tags"><span class="tag">P&C Insurance</span><span class="tag level">Technical</span></div>
<h3>Implement the P&C Insurance Starter Pack</h3>
<p>Governed loss ratios, reserving, frequency & severity — with written-vs-earned premium done right. Connect, validate against your book, and grow it.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Carrier data & actuarial teams</span></div>
</a>
<a class="card" href="biopharma-starter/index.html">
<div class="tags"><span class="tag">Biopharma · Commercial</span><span class="tag level">Technical</span></div>
<h3>Implement the Biopharma Starter Pack</h3>
<p>Governed brand performance, market access, and field-force effectiveness — Rx volume, share, gross-to-net, decile coverage. Connect, validate, and make it yours.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Commercial analytics teams</span></div>
</a>
<a class="card" href="clinical-trials-starter/index.html">
<div class="tags"><span class="tag">Clinical Trials</span><span class="tag level">Technical</span></div>
<h3>Implement the Clinical Trials Starter Pack</h3>
<p>Governed enrollment & site performance, safety (arm-agnostic), and data-cleaning metrics — with blinding and data-cut discipline built in.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 ClinOps & data management</span></div>
</a>
<a class="card" href="genomics-starter/index.html">
<div class="tags"><span class="tag">Genomics</span><span class="tag level">Technical</span></div>
<h3>Implement the Genomics Starter Pack</h3>
<p>Governed variant & diagnostic yield, cohort feasibility, and assay QC/TAT — with the variant tuple and PASS-only filtering handled. Connect, validate, and grow it.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Genomics & lab teams</span></div>
</a>
<a class="card" href="realestate-starter/index.html">
<div class="tags"><span class="tag">Real Estate · Property Ops</span><span class="tag level">Technical</span></div>
<h3>Implement the Real Estate Starter Pack</h3>
<p>Governed occupancy & NOI, rent roll & collections, leasing & work orders — across the portfolio, with fair-housing governance built in. Connect, validate, and grow it.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Property & asset-mgmt teams</span></div>
</a>
<a class="card" href="provider-ops-starter/index.html">
<div class="tags"><span class="tag">Provider · Health-System Ops</span><span class="tag level">Technical</span></div>
<h3>Implement the Provider Ops Starter Pack</h3>
<p>Governed length of stay & bed occupancy, ED throughput & OR utilization, case mix, denials & no-shows — the operations side of care delivery, with HIPAA defaults. Connect, validate, and grow it.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Hospital ops & analytics teams</span></div>
</a>
<a class="card" href="medtech-starter/index.html">
<div class="tags"><span class="tag">MedTech · Medical Device</span><span class="tag level">Technical</span></div>
<h3>Implement the MedTech Starter Pack</h3>
<p>Governed product revenue & installed base, attach rate, complaint & MDR rates, field-service resolution & device availability — commercial through post-market quality, with FDA-record governance. Connect, validate, and grow it.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 MedTech commercial, RAQA & service teams</span></div>
</a>
<a class="card" href="capital-markets-starter/index.html">
<div class="tags"><span class="tag">Capital Markets · Sell-Side</span><span class="tag level">Technical</span></div>
<h3>Implement the Capital Markets Starter Pack</h3>
<p>Governed trading volume & P&L, positions & gross/net exposure, VaR & DV01, counterparty & concentration risk — the markets division, with MNPI/information-barrier governance. Connect, validate, and grow it.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Trading, market-risk & product-control teams</span></div>
</a>
<a class="card soon" href="#">
<div class="tags"><span class="tag">Coming soon</span></div>
<h3>More domains</h3>
<p>Retail & CPG, manufacturing, and more — one implementation workshop per domain starter pack.</p>
<div class="meta"><span>⏱️ ~2.5 hours each</span></div>
</a>
</div>
<h2>For developers</h2>
<div class="catalog">
<a class="card" href="developer/index.html">
<div class="tags"><span class="tag">API & MCP</span><span class="tag level">Technical</span></div>
<h3>Developer Workshop — API & MCP</h3>
<p>Drive Ana programmatically: REST API, streaming, playbooks and dashboards as code, Ana inside Claude/Cursor via MCP, and custom MCP tools.</p>
<div class="meta"><span>⏱️ ~2 hours</span><span>🎯 Developers</span></div>
</a>
<a class="card" href="refinery-cli/index.html">
<div class="tags"><span class="tag">CLI</span><span class="tag level">Technical</span></div>
<h3>Ontology as Code — the Refinery CLI</h3>
<p>The terminal-first loop: query connectors into sandboxes, run governed queries, author .tql against the deployment's own grammar, install programmatically, and prove the lift with a scripted before/after eval.</p>
<div class="meta"><span>⏱️ ~2 hours</span><span>🎯 Data/platform engineers</span></div>
</a>
<a class="card" href="embed-textql/index.html">
<div class="tags"><span class="tag">Embedding</span><span class="tag level">Technical</span></div>
<h3>Embed TextQL in Your Product</h3>
<p>Scoped auth, chat via API in your UI, embedded answers and dashboards, multi-tenant patterns, and production hardening.</p>
<div class="meta"><span>⏱️ ~2.5 hours</span><span>🎯 Developers & product teams</span></div>
</a>
</div>
</div>
<footer>© TextQL · Questions? Contact your TextQL account team. · <a href="mailto:jacob@textql.com?subject=TextQL%20Workshops%20feedback">Give feedback</a></footer>
<script>
/* TextQL workshops analytics — PostHog via first-party proxy */
!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once identify alias set_config reset opt_in_capturing opt_out_capturing".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
posthog.init('phc_cmTpctVWkmjZZDI0vGNMD5wHY3ywg9FdQCA48kdfEp2',{api_host:'https://hermes.textql.com',persistence:'localStorage'});
(function(){
var segs=location.pathname.split('/').filter(function(x){return x&&x!=='index.html'});
var ws=segs.length>1?segs[segs.length-1]:'catalog';
if(ws==='workshops')ws='catalog';
function page(){return location.hash.replace(/^#\/?/,'')||'welcome'}
function cap(ev,props){props=props||{};props.workshop=ws;props.page=page();props.site='workshops';try{posthog.capture(ev,props)}catch(e){}}
cap('workshop_page_view');
window.addEventListener('hashchange',function(){cap('workshop_page_view')});
document.addEventListener('click',function(e){
var b=e.target.closest&&e.target.closest('.prompt button');
if(b){cap('workshop_prompt_copied');return}
var c=e.target.closest&&e.target.closest('a.card');
if(c&&c.getAttribute('href')&&c.getAttribute('href')!=='#'){cap('workshop_card_clicked',{target_workshop:c.getAttribute('href').split('/')[0]})}
});
document.addEventListener('change',function(e){
if(!(e.target.matches&&e.target.matches('.checkpoint input')))return;
var cp=e.target.closest('.checkpoint');
var boxes=cp.querySelectorAll('input[type=checkbox]');
var all=true;for(var i=0;i<boxes.length;i++)if(!boxes[i].checked)all=false;
if(all)cap('workshop_checkpoint_completed');
var pages=document.querySelectorAll('section.page');
var withCp=0,done=0;
pages.forEach(function(p){var bx=p.querySelectorAll('.checkpoint input');if(bx.length){withCp++;var ok=true;bx.forEach(function(b){if(!b.checked)ok=false});if(ok)done++}});
if(withCp&&done===withCp)cap('workshop_completed');
});
})();
</script>
</body>
</html>