
1
00:00:00,000 –> 00:00:05,600
Python is the language of AI, incorrect, inside Microsoft stack, AI writes the glue, not you.
2
00:00:05,600 –> 00:00:09,340
You keep shoving Python into power automate and power BI, then wonder why your flows wobble
3
00:00:09,340 –> 00:00:10,820
like a three-legged chair.
4
00:00:10,820 –> 00:00:11,740
Here’s the fix.
5
00:00:11,740 –> 00:00:16,380
I’ll show you why type agent style orchestration and co-pilot turn TypeScript-like scripts
6
00:00:16,380 –> 00:00:20,900
into the first class glue, push Python to contain analytics and collapse build, debug,
7
00:00:20,900 –> 00:00:23,200
deploy into a single conversational loop.
8
00:00:23,200 –> 00:00:27,280
Stay for the secret step that kills defect inflation, the mistake that silently drains
9
00:00:27,280 –> 00:00:32,840
budgets and the hybrid pattern that lets you keep Python without the pain.
10
00:00:32,840 –> 00:00:35,800
The problem, Python’s friction inside power platform.
11
00:00:35,800 –> 00:00:37,960
Let’s start with the obvious that somehow isn’t obvious.
12
00:00:37,960 –> 00:00:40,720
Power automate does not run arbitrary Python.
13
00:00:40,720 –> 00:00:44,760
Office scripts, TypeScript flavoured are the native script surface for Microsoft 365,
14
00:00:44,760 –> 00:00:45,760
Excel online host them.
15
00:00:45,760 –> 00:00:46,760
That’s the lane.
16
00:00:46,760 –> 00:00:50,560
When you insist on Python, you bolt on Azure Functions logic apps or custom connectors.
17
00:00:50,560 –> 00:00:54,600
Now you’ve added external compute deployment pipelines, authentication and my favorite run-time
18
00:00:54,600 –> 00:00:55,600
mystery meet.
19
00:00:55,600 –> 00:00:58,400
This hurts as simple economics plus probability.
20
00:00:58,400 –> 00:01:03,720
External setup means more services to configure, more credentials to rotate and more costs
21
00:01:03,720 –> 00:01:06,080
ticking even while you sleep.
22
00:01:06,080 –> 00:01:07,600
Dynamic typing adds roulette.
23
00:01:07,600 –> 00:01:11,560
The code compiles because there is no compile, then fails mid-flight because the field wasn’t
24
00:01:11,560 –> 00:01:12,560
what you assumed.
25
00:01:12,560 –> 00:01:13,720
In a flow, that’s not cute.
26
00:01:13,720 –> 00:01:18,140
It’s a broken approval, a missed SLA, and another ticket titled urgent typed in lower
27
00:01:18,140 –> 00:01:19,140
case.
28
00:01:19,140 –> 00:01:21,480
Specific scenarios, Power BI data flows.
29
00:01:21,480 –> 00:01:22,880
You’re transforming data.
30
00:01:22,880 –> 00:01:26,940
Power pilot can now generate Power Query M or Python for you, inside of the data flow
31
00:01:26,940 –> 00:01:27,940
Gen 2.
32
00:01:27,940 –> 00:01:31,580
Great, until you mix this with a separate Python service for glue tasks that Power Automate
33
00:01:31,580 –> 00:01:35,000
could have handled natively, now you’re lineage crosses products.
34
00:01:35,000 –> 00:01:39,000
Observability, enjoy tracing an error from a flow to a function to a data flow.
35
00:01:39,000 –> 00:01:43,200
In the time it takes your stakeholders to ask, is it done yet for the seventh time?
36
00:01:43,200 –> 00:01:44,200
Power Automate flows.
37
00:01:44,200 –> 00:01:47,000
The whole point is native connectors and Office scripts.
38
00:01:47,000 –> 00:01:50,760
People still shove Python behind a custom connector to rename columns in Excel.
39
00:01:50,760 –> 00:01:53,700
Just like calling a tow truck to back out of your driveway.
40
00:01:53,700 –> 00:01:55,900
Every hop increases Britleness.
41
00:01:55,900 –> 00:02:00,480
Connector schema is drift, function dependencies age, permissions sprawl across entra
42
00:02:00,480 –> 00:02:03,800
rolls, resource groups, and mystery storage accounts.
43
00:02:03,800 –> 00:02:06,000
No one will admit to creating.
44
00:02:06,000 –> 00:02:10,400
Fabric notebooks, yes, Python belongs here for data science ML series compute.
45
00:02:10,400 –> 00:02:14,200
But when you use notebooks as orchestration glue, you weld business logic to a compute
46
00:02:14,200 –> 00:02:15,200
kernel.
47
00:02:15,200 –> 00:02:18,440
Scheduling, validation, and IO become bespoke.
48
00:02:18,440 –> 00:02:22,320
An environment update later pandas goes up a minor version and your simple glue becomes
49
00:02:22,320 –> 00:02:24,320
archaeological strata.
50
00:02:24,320 –> 00:02:25,720
Beginners think they’re simplifying.
51
00:02:25,720 –> 00:02:30,000
They’re actually creating a single point of procedural failure with bonus yaml.
52
00:02:30,000 –> 00:02:32,600
The thing most people miss office scripts aren’t toy typescript.
53
00:02:32,600 –> 00:02:36,920
They are the sanctioned edge for automating Excel and related Microsoft 365 tasks without
54
00:02:36,920 –> 00:02:38,240
dragging in infra.
55
00:02:38,240 –> 00:02:41,640
Compare that to full node typescript which you might use in Azure functions for robust
56
00:02:41,640 –> 00:02:43,280
APIs when you actually need them.
57
00:02:43,280 –> 00:02:45,760
Python inside Power Platform is indirect by design.
58
00:02:45,760 –> 00:02:46,760
You can do it.
59
00:02:46,760 –> 00:02:47,760
You shouldn’t do it for glue.
60
00:02:47,760 –> 00:02:50,360
You can talk cost math without the fairy dust.
61
00:02:50,360 –> 00:02:53,280
Simple flows are cheap because they stay in platform.
62
00:02:53,280 –> 00:02:56,640
Connectors, triggers, and office scripts ride your existing licensing.
63
00:02:56,640 –> 00:02:59,760
Bring in Python, via functions, and you pay in two currencies.
64
00:02:59,760 –> 00:03:00,960
Money and attention.
65
00:03:00,960 –> 00:03:03,360
Money for execution, storage, and networking.
66
00:03:03,360 –> 00:03:07,520
Attention for versioning, image hardening, secrets, retreats, cold starts, and the weekly,
67
00:03:07,520 –> 00:03:09,280
why did it fail at 2.14 a.m.
68
00:03:09,280 –> 00:03:10,280
Saga.
69
00:03:10,280 –> 00:03:11,280
At small scale find.
70
00:03:11,280 –> 00:03:14,600
At organizational scale, that’s a budget line item with regret baked in.
71
00:03:14,600 –> 00:03:16,920
Common failure modes show up on repeat.
72
00:03:16,920 –> 00:03:20,640
Visual connectors where your swagger spec lags reality by one field.
73
00:03:20,640 –> 00:03:21,640
Version drift.
74
00:03:21,640 –> 00:03:24,920
Library updates that aren’t pinned because someone loves latest.
75
00:03:24,920 –> 00:03:25,920
Permissions sprawl.
76
00:03:25,920 –> 00:03:28,080
Service principles with rights just for now.
77
00:03:28,080 –> 00:03:29,640
That become forever.
78
00:03:29,640 –> 00:03:31,040
Cross service debugging.
79
00:03:31,040 –> 00:03:34,520
Replaying runs across power automate, Azure functions, and data flow logs like a true
80
00:03:34,520 –> 00:03:35,520
crime podcast.
81
00:03:35,520 –> 00:03:36,520
The truth?
82
00:03:36,520 –> 00:03:40,800
Dynamic typing’s freedom is fun until it’s 3 p.m. on quarter close and your flow succeeds
83
00:03:40,800 –> 00:03:42,120
with the wrong shape.
84
00:03:42,120 –> 00:03:45,240
Strong typed boundaries catch stupidity before it ships.
85
00:03:45,240 –> 00:03:49,720
Type-script like scripts and schema connectors give you those guardrails Python can have
86
00:03:49,720 –> 00:03:50,720
types too.
87
00:03:50,720 –> 00:03:52,600
Yes, most of you don’t enforce them in flows.
88
00:03:52,600 –> 00:03:54,840
Don’t argue your log files already did.
89
00:03:54,840 –> 00:03:56,600
And now the transition you were waiting for.
90
00:03:56,600 –> 00:04:00,800
If friction stack every time your hand stitch code as glue what replaces the glue.
91
00:04:00,800 –> 00:04:05,600
Enter AI that writes and runs the glue for you within the lanes the platform optimizes.
92
00:04:05,600 –> 00:04:11,440
Copilot can translate natural language into office scripts for Microsoft 365 tasks.
93
00:04:11,440 –> 00:04:16,760
In Power BI, copilot uses semantic model metadata to generate M or Python accurately and produce
94
00:04:16,760 –> 00:04:18,360
report scaffolds in seconds.
95
00:04:18,360 –> 00:04:21,920
Agents like type agent coordinate tools with memory and guardrails reducing the ping pong
96
00:04:21,920 –> 00:04:24,440
of spec code deploy debug redeploy.
97
00:04:24,440 –> 00:04:28,840
You constrain the surface area you get typed edges where it matters and you keep Python where
98
00:04:28,840 –> 00:04:29,840
it shines.
99
00:04:29,840 –> 00:04:31,640
Contained analytics not duct tape.
100
00:04:31,640 –> 00:04:34,680
Yes, you can cling to but Python can do anything.
101
00:04:34,680 –> 00:04:38,200
So can duct tape that doesn’t make it the right fastener for aircraft.
102
00:04:38,200 –> 00:04:42,320
Microsoft orchestration native let AI write the glue put Python in notebooks or services
103
00:04:42,320 –> 00:04:43,400
designed for it.
104
00:04:43,400 –> 00:04:48,680
You’ll spend less break less and this is the part that stings ship more.
105
00:04:48,680 –> 00:04:52,480
Why current approaches fail manual code and static playbooks.
106
00:04:52,480 –> 00:04:57,360
The manual coding loop looks heroic on a whiteboard requirement code deploy test fix redeploy.
107
00:04:57,360 –> 00:05:01,720
In reality, it’s slow motion whack a mole business rules change mid sprint.
108
00:05:01,720 –> 00:05:06,640
Your final schema shifts by lunch and the only constant is another redeploy in the
109
00:05:06,640 –> 00:05:11,520
power platform that loop is even more painful because every hop power automate to Azure
110
00:05:11,520 –> 00:05:16,200
functions to power BI amplifies the friction and multiplies your failure modes.
111
00:05:16,200 –> 00:05:17,840
Static playbooks are the other trap.
112
00:05:17,840 –> 00:05:22,760
You wrote a golden path runbook for quarter and logic then sales events in new discount
113
00:05:22,760 –> 00:05:28,120
finance tweaks revenue recognition and legal ads of four step approval yesterday.
114
00:05:28,120 –> 00:05:32,560
Your Python in functions glue doesn’t bend it cracks your update code bump dependencies
115
00:05:32,560 –> 00:05:37,040
rebuild containers and rediscover that cold starts love to appear during executive demos
116
00:05:37,040 –> 00:05:38,320
fascinating right.
117
00:05:38,320 –> 00:05:42,480
The truth most people avoid dynamic typing freedom feels fast when you’re alone at scale
118
00:05:42,480 –> 00:05:47,280
inflows its bug roulette an optional field changes from string to number and your function
119
00:05:47,280 –> 00:05:52,280
happily sales through until a branch expects text and throws an exception at runtime.
120
00:05:52,280 –> 00:05:57,520
That’s not a unit test failing loudly that’s production silently misclassifying transactions
121
00:05:57,520 –> 00:06:01,680
and yes your audit trail is basically a novella observability is a scavenger hunt errors
122
00:06:01,680 –> 00:06:05,720
originate in power automate get transformed inside a custom connector trigger a Python
123
00:06:05,720 –> 00:06:11,280
function bounce to data flow gen 2 and finally surface as a broken tile in power BI.
124
00:06:11,280 –> 00:06:15,120
Now you’re reading five logs that can’t agree on the same timestamp format you call this
125
00:06:15,120 –> 00:06:20,400
investigation users call it we still don’t have the numbers micro story a team shaved hours
126
00:06:20,400 –> 00:06:25,320
of monthly reporting by consolidating transforms into a single Python function it worked until
127
00:06:25,320 –> 00:06:29,680
dependency conflicts resurfaced a minor pandas version update changed the default their
128
00:06:29,680 –> 00:06:34,480
function silently coerced nulls and two weeks later variance reports were off by just enough
129
00:06:34,480 –> 00:06:39,520
to be dangerous they fixed it then it occurred because pinning was on the backlog bug recurrence
130
00:06:39,520 –> 00:06:45,120
isn’t a mystery it’s a process floor and governance custom connectors age like milk open API specs
131
00:06:45,120 –> 00:06:49,680
drift behind reality tokens expire service principles collect excessive rights temporarily
132
00:06:49,680 –> 00:06:55,200
and your once elegant pipeline is now a rubegoldberg machine with s.o.c findings the manual loop
133
00:06:55,200 –> 00:07:00,480
doesn’t just cost time it accumulates operational debt every quick fix is a future outage with a
134
00:07:00,480 –> 00:07:05,440
calendar invite the center cannot hold because the center is brittle glue manual code works when the
135
00:07:05,440 –> 00:07:10,960
domain is stable the power platforms business logic is not stable therefore pay attention your
136
00:07:10,960 –> 00:07:15,920
orchestration must be adaptive type that the edges and generated close to the platforms primitives
137
00:07:15,920 –> 00:07:20,640
not hand stitched far away stop treating glue like an app let an agent orchestrate and constrain
138
00:07:21,200 –> 00:07:26,400
the better method type agent plus copilot as the orchestrator enter the model that doesn’t fight
139
00:07:26,400 –> 00:07:32,720
the platform agents generate call tools observe results and revise not free for all code spew tool
140
00:07:32,720 –> 00:07:38,880
calling with guardrails you give the agent a bounded toolbox office scripts for Microsoft 365
141
00:07:38,880 –> 00:07:44,640
actions power bi data flow gen two for transformations connectors for data movement and strictly
142
00:07:44,640 –> 00:07:49,520
typed interfaces between them the agent holds context reasons across steps and only rights code
143
00:07:49,520 –> 00:07:54,560
where code belongs start with office scripts and copilot you describe the outcome when a new
144
00:07:54,560 –> 00:07:59,920
row lands in this table normalize dates fill blanks and email approvers with a summary copilot
145
00:07:59,920 –> 00:08:04,320
translates that into type script like office scripts and flow steps there’s no external runtime
146
00:08:04,320 –> 00:08:09,600
no container to harden no secret store to babysit the code sits where the data lives excel online
147
00:08:09,600 –> 00:08:14,960
sharepoint one drive and your flow stitches native connectors fewer moving parts fewer ways to fail
148
00:08:14,960 –> 00:08:19,280
the thing most people miss is that typed edges exist even here object models
149
00:08:19,600 –> 00:08:24,720
method signatures and connector schemas and force shape before runtime turns on the blender move
150
00:08:24,720 –> 00:08:30,160
to data flow gentle with copilot prompts become power query m or python but with context copilot is
151
00:08:30,160 –> 00:08:35,760
semantic model aware it knows your tables columns measures and synonyms so generation is anchored to
152
00:08:35,760 –> 00:08:41,120
your reality not a hallucinated schema need a quick report scaffold copilot can spin a page with
153
00:08:41,120 –> 00:08:46,960
visuals in seconds not because magic because it leverages metadata you already curated you validate
154
00:08:46,960 –> 00:08:51,760
the diffs lock the pattern and this is important keep orchestration out of python use python inside
155
00:08:51,760 –> 00:08:57,200
the data flow for analytics kernels not for renaming columns or pinging approvals now bring in type
156
00:08:57,200 –> 00:09:02,000
agent pie or a similar agent framework for multi step reasoning the agent isn’t replacing your
157
00:09:02,000 –> 00:09:06,880
governance it’s enforcing it it remembers prior failures chooses the right tool and retrieves
158
00:09:06,880 –> 00:09:12,240
intelligently tool calling accuracy and context retention matter here when the agent can consistently
159
00:09:12,240 –> 00:09:17,600
pick update worksheet versus send email you stop shipping human wiring errors time to resolution
160
00:09:17,600 –> 00:09:22,640
shrinks because the agent handles the lead up generating the script testing against the sample
161
00:09:22,640 –> 00:09:27,280
validating outputs and only then promoting changes why this works is simple architecture
162
00:09:27,280 –> 00:09:32,240
constrained the code surface put statically typed boundaries at the seams open api schemas on
163
00:09:32,240 –> 00:09:38,080
connectors office script object models semantic models in power bi inside those boundaries let AI
164
00:09:38,080 –> 00:09:43,120
generate code to spec the reason this reduces defects is not supernatural it’s pre validation
165
00:09:43,120 –> 00:09:48,000
you’re catching shape mistakes before they become outages and because the agent keeps memory
166
00:09:48,000 –> 00:09:53,120
you kill recurrence the bug that returns because your fix didn’t update the pattern just the file
167
00:09:53,120 –> 00:09:58,720
practical shift python remains where it dominates within fabric notebooks or data flows for
168
00:09:58,720 –> 00:10:04,240
advanced analytics modeling and ml you let co pilot help with exploratory data analysis vectorization
169
00:10:04,240 –> 00:10:10,000
patterns and visualization code around that the agent handles the perimeter scheduling validation
170
00:10:10,000 –> 00:10:16,320
i.o. and policy agents trigger notebooks validate outputs and root results without inventing bespoke
171
00:10:16,320 –> 00:10:21,360
orchestration in python you do not weld business logic to a kernel you separate concerns like an adult
172
00:10:21,360 –> 00:10:27,120
office scripts and co pilot give the quick wins the agent enforces repeatability here’s the shortcut
173
00:10:27,120 –> 00:10:32,640
nobody teaches codify prompts as assets treat them like templates with variables and acceptance
174
00:10:32,640 –> 00:10:38,960
criteria if you remember nothing else capture the successful prompt and the expected shape of outputs
175
00:10:38,960 –> 00:10:44,000
the agent can reuse it adapt it and link the result against your contracts that’s how you collapse
176
00:10:44,000 –> 00:10:49,200
build debug deploy into a conversational loop that’s still governed the game changer nobody talks
177
00:10:49,200 –> 00:10:54,720
about typed contracts for agent tools you define the input and output schemas the agent can validate
178
00:10:54,720 –> 00:10:58,480
before it runs a single step in production compared that to just run the python and pray your
179
00:10:58,480 –> 00:11:02,880
json didn’t sprout an extra property and yes python can be typed the point is discipline at the
180
00:11:02,880 –> 00:11:08,880
edges not language loyalty in the power platform the edges are Microsoft’s domains office power bi
181
00:11:08,880 –> 00:11:13,440
data verse so use the primitives they optimize once you nail that everything else clicks
182
00:11:13,440 –> 00:11:19,040
versioning is smaller surface area prompts and scripts not monoliths observability is centralized
183
00:11:19,040 –> 00:11:24,480
power automate run history data flow lineage and agent traces not five disconnected lock dashboards
184
00:11:24,480 –> 00:11:28,960
cost goes down because you retire as your functions that were just doing make work chores
185
00:11:28,960 –> 00:11:34,160
and defect rates drop because your orchestrator is opinionated not artisanal now you might be thinking
186
00:11:34,160 –> 00:11:40,000
this sounds like giving up control incorrect you’re moving control upper level you decide the contracts
187
00:11:40,000 –> 00:11:44,800
the tools the guardrails and the review gates the agent does the stitching faster than your human loop
188
00:11:44,800 –> 00:11:50,160
and less error prone you reserve python for high value analytics where libraries earn their keep
189
00:11:50,160 –> 00:11:55,440
that’s not surrender that strategy let me show you exactly how this feels in practice a request lands
190
00:11:55,440 –> 00:12:01,920
we need a weekly report that cleans csv’s enriches with data verse pushes to a semantic model and emails
191
00:12:01,920 –> 00:12:07,520
approvers old way stand up a python function wire a custom connector argue with oath fix types three
192
00:12:07,520 –> 00:12:13,760
times new way agent calls data flow gen 2 via co-pilot to generate the transforms validates columns
193
00:12:13,760 –> 00:12:18,800
against the model uses office scripts to prep the excel drop triggers a flow for notifications
194
00:12:18,800 –> 00:12:24,160
and logs the lineage no bespoke glue no midnight redeploy the reason this works is you stopped using
195
00:12:24,160 –> 00:12:29,120
python as duct tape in a platform designed with its own fasteners you let a i write glue near the
196
00:12:29,120 –> 00:12:34,720
joints not across the gap and when the business changes spoiler alert it will you update a prompt
197
00:12:34,720 –> 00:12:39,040
not a container image that’s how you keep shipping while everyone else is still in dependency hell
198
00:12:39,040 –> 00:12:45,120
explaining to finance why latest was a terrible idea application one power bi data flows python
199
00:12:45,120 –> 00:12:49,680
generated not hand written here’s where the light bulb goes on in power bi you’re not paid to write
200
00:12:49,680 –> 00:12:55,120
artisanal m or bespoke python you’re paid to deliver clean data and working reports co-pilot inside
201
00:12:55,120 –> 00:13:00,640
data flow gen 2 let’s you state the transformation in plain english then it generates power query m or
202
00:13:00,640 –> 00:13:06,400
yes python anchored to your actual semantic model not fantasy tables your tables columns and measures
203
00:13:06,400 –> 00:13:11,760
that semantic awareness kills a whole category of column not found chaos before it starts
204
00:13:11,760 –> 00:13:16,960
why this matters generation plus context equals fewer dumb bugs the thing most people miss is the review
205
00:13:16,960 –> 00:13:22,240
loop you don’t trust the black box you use it to draft fast then you review the diff lock the pattern
206
00:13:22,240 –> 00:13:28,000
once it’s right from there use co-pilot to iterate by prompt not by endless hand edits your treating
207
00:13:28,000 –> 00:13:33,040
code like a template with variables rather than a diary of your keyboards feelings what does the
208
00:13:33,040 –> 00:13:38,320
workflow look like you prompt from sales transactions filter to the last 12 months normalize date formats
209
00:13:38,320 –> 00:13:44,480
left join customer master and compute gross margin co-pilot proposes m or python you preview the result
210
00:13:44,480 –> 00:13:50,000
against a sample validate column names against the semantic model and pin the step need python for
211
00:13:50,000 –> 00:13:55,600
an analytics kernel say outlier detection or seasonal decomposition fine let co-pilot generate
212
00:13:55,600 –> 00:14:00,800
that inside the data flow but keep orchestration out of it python computes the platform orchestrates
213
00:14:00,800 –> 00:14:06,800
quick win reports got folding co-pilot can spit out a first pass page with visuals in seconds
214
00:14:06,800 –> 00:14:11,280
it’s not magic it’s metadata you already named your measures added synonyms and curated
215
00:14:11,280 –> 00:14:16,560
relationships co-pilot leverages that to place charts intelligently you save the groundwork and
216
00:14:16,560 –> 00:14:23,440
spend time refining what matters business logic and presentation common mistakes that inflate defects
217
00:14:23,440 –> 00:14:28,640
first letting co-pilot’s generated python grow tentacles if it starts renaming columns calling
218
00:14:28,640 –> 00:14:33,680
external endpoints or embedding workflow logic you’ve slipped back into brittle glue second skipping
219
00:14:33,680 –> 00:14:39,360
code reviews because a i wrote it no ad review standardized prompts keeper checklist column shapes
220
00:14:39,360 –> 00:14:45,600
validated null handling explicit joins deterministic third mixing orchestration and analytics if you
221
00:14:45,600 –> 00:14:50,480
blend approval logic into a python transform you’ve guaranteed the next schema change breaks your
222
00:14:50,480 –> 00:14:56,160
workflow the hybrid rule here is simple python for analytics kernels m or platform native steps
223
00:14:56,160 –> 00:15:01,200
for plumbing use data verse or one lake for inputs and outputs that the rest of the platform
224
00:15:01,200 –> 00:15:06,400
understands when you need to adjust the transform change the prompt and validate the diff rather than
225
00:15:06,400 –> 00:15:12,000
spelunking through a 400 line function business changes become edits to intent not surgery on glue
226
00:15:12,000 –> 00:15:17,840
and yes observability improves data flow lineage shows what fed what co-pilot’s proposed steps form
227
00:15:17,840 –> 00:15:22,080
a readable chain rather than a bucket of hand rolled scripts when something fails you troubleshoot
228
00:15:22,080 –> 00:15:26,880
in one place compare that to your old pattern power automate triggers a custom connector hits a
229
00:15:26,880 –> 00:15:31,920
python api that mutates columns then writes to a lake you forgot to tag delightful the payoff is
230
00:15:31,920 –> 00:15:36,800
speed with fewer surprises you generate review lock you reserve python for the heavy math where it
231
00:15:36,800 –> 00:15:41,760
earns its keep and when the cfo invents a new metric on a Tuesday afternoon you update a prompt and
232
00:15:41,760 –> 00:15:46,640
revalidate not redeploy a container image try pretending that isn’t better data flows stabilized
233
00:15:46,640 –> 00:15:52,800
good now kill the fragile glue living rent free in power automate application two power automate
234
00:15:52,800 –> 00:15:57,920
replace python glue with office scripts plus agents in power automate the correct move is boring
235
00:15:57,920 –> 00:16:03,040
on purpose native connectors and office scripts you describe your steps co-pilot drafts the flow
236
00:16:03,040 –> 00:16:08,720
in scripts and you keep everything inside Microsoft 365 no Azure functions no custom connector
237
00:16:08,720 –> 00:16:14,160
scaffolding no midnight patching of ssl ciphers on a container you forgot existed shocking revelation
238
00:16:14,160 –> 00:16:19,120
when you reduce moving parts you reduce failures why office scripts because they’re type script
239
00:16:19,120 –> 00:16:24,480
flavoured with a defined object model that gives you typed edges method signatures predictable shapes
240
00:16:24,480 –> 00:16:30,720
before runtime gets a chance to embarrass you co-pilot turns for each new row in this table normalize
241
00:16:30,720 –> 00:16:37,920
date strings computer status and email the owner with a summary into exactly that a flow plus a script
242
00:16:37,920 –> 00:16:42,240
your data stays near excel share point or one drive your governance stays simpler and your
243
00:16:42,240 –> 00:16:46,880
defect rate drops because you eliminated the ad hoc python detour that loved to break on Tuesdays
244
00:16:46,880 –> 00:16:52,800
how to structure it so it scales adopt an agent driven pattern the agent type agent or comparable
245
00:16:52,800 –> 00:16:57,840
selects tools from a constrained toolbox invoke office script call a graph connector write to
246
00:16:57,840 –> 00:17:02,640
data verse send an approval inputs and outputs are schemered the agent validates preconditions runs
247
00:17:02,640 –> 00:17:08,000
a test against the sample and only then promotes the change tool calling accuracy matters so name
248
00:17:08,000 –> 00:17:13,840
tools unambiguously worksheet update table beats do stuff when the agent consistently picks the
249
00:17:13,840 –> 00:17:18,560
right tool you stop wiring the wrong action to the right trigger quick wins that retire python glue
250
00:17:18,560 –> 00:17:24,960
excel operations cleaning columns the duping splitting fields office scripts handle these natively
251
00:17:24,960 –> 00:17:30,480
approvals and notifications native actions in minutes zero custom auth data verse and sharepoint
252
00:17:30,480 –> 00:17:35,920
updates connectors with metadata awareness not raw HTTP calls costs go down because you’re not paying
253
00:17:35,920 –> 00:17:40,880
for always on compute to rename columns time to resolution shrinks because your agent can generate
254
00:17:40,880 –> 00:17:45,680
test and iterate without a human setting up a dev container and your security team stops glaring
255
00:17:45,680 –> 00:17:50,560
because you removed the unknown API endpoint that someone labeled temporary mistakes to avoid
256
00:17:50,560 –> 00:17:55,520
because of course you’ll try them first forcing python via a custom connector for trivial tasks
257
00:17:55,520 –> 00:18:01,040
if the job is to reshape a table use office scripts second ignoring governance scripts need
258
00:18:01,040 –> 00:18:06,800
versioning review gates and naming standards treat them like code because they are third bearing
259
00:18:06,800 –> 00:18:11,760
business logic across five flows with no type contracts define your input and output schemas
260
00:18:11,760 –> 00:18:17,200
upfront the agent can enforce them the platform will validate them production will thank you you
261
00:18:17,200 –> 00:18:22,880
still want python put it where it belongs analysis if a flow needs predictions or advanced transforms
262
00:18:22,880 –> 00:18:29,440
call a proper service fabric notebook job ml endpoint behind a clean API not an improvised flask
263
00:18:29,440 –> 00:18:35,440
app someone left on a free tier the flow orchestrates the python computes they interact through a contract
264
00:18:35,440 –> 00:18:40,560
not through vibes the subtle advantage of office scripts plus agents is maintainability prompts become
265
00:18:40,560 –> 00:18:46,160
assets scripts become reusable tools flows become thin orchestration layers not logic museums when
266
00:18:46,160 –> 00:18:51,040
requirements change you update a prompt and if needed a script with a review rather than revisiting
267
00:18:51,040 –> 00:18:56,560
an entire custom connector stack the agent remembers the previous fix reuses the pattern and prevents
268
00:18:56,560 –> 00:19:02,160
recurrence that’s how you turn we spent the afternoon debugging types into we shipped before lunch
269
00:19:02,160 –> 00:19:07,120
the truth in power automate python is glue is performative difficulty you’re proving you can
270
00:19:07,120 –> 00:19:13,280
while the platform quietly offers you a simpler safer path use it application three fabric notebooks contain
271
00:19:13,280 –> 00:19:18,560
python automate the perimeter in fabric python finally sits where it’s strongest the compute core
272
00:19:18,560 –> 00:19:22,880
not the doorbell not the ductwork the engine you keep the business logic at the edges and let
273
00:19:22,880 –> 00:19:29,120
the notebook do analytics modeling and heavy transforms the perimeter scheduling validation i.o policy
274
00:19:29,120 –> 00:19:34,240
belongs to agents and typescript flavor tooling why this matters when you weld orchestration to a
275
00:19:34,240 –> 00:19:39,280
notebook every environment tweak becomes a production incident separate concerns the agent calls
276
00:19:39,280 –> 00:19:44,400
the notebook through a clean job API passes typed inputs and expects typed outputs if the shape
277
00:19:44,400 –> 00:19:50,080
deviates it fails fast at the edge not halfway through a 20 minute run how this looks in practice
278
00:19:50,080 –> 00:19:55,120
co-pilot helps inside the notebook for eda vectorization visualization scaffolds you still review
279
00:19:55,120 –> 00:20:00,720
and pin library versions adults remember the agent handles pipelines triggers on data arrival runs
280
00:20:00,720 –> 00:20:05,360
a schema check launches the notebook job and validates outputs against a contract before publishing
281
00:20:05,360 –> 00:20:10,480
to one lake or a semantic model version control notebooks like code store prompts that generated
282
00:20:10,480 –> 00:20:15,680
helper functions unit test outputs metrics distributions row counts rather than line by line
283
00:20:15,680 –> 00:20:21,360
plumbing quick win prompt co-pilot to generate a seasonal decomposition step keep it in the notebook
284
00:20:21,360 –> 00:20:26,560
and let the agent orchestrate retries and alerts business logic lives in declarative contracts
285
00:20:26,560 –> 00:20:32,080
python stays computational mistakes to avoid hiding approvals or renames inside the notebook
286
00:20:32,080 –> 00:20:36,880
coupling flows to ad hoc endpoints or storing the only definition of a kpi inside a cell comment
287
00:20:36,880 –> 00:20:43,760
don’t do archaeology do architecture now quantify it so finance stops sighing results time-saved
288
00:20:43,760 –> 00:20:49,680
cost-reduced defects down time first a i assisted generation collapses the build debug deploy loop
289
00:20:49,680 –> 00:20:54,400
co-pilot drafts transforms and scripts the agent tests against samples before promotion
290
00:20:54,400 –> 00:20:58,880
you cut rework and context switching because orchestration stays native and code sits where it
291
00:20:58,880 –> 00:21:04,240
executes cost next retire as your functions that were renaming columns keep flows in platform
292
00:21:04,240 –> 00:21:09,440
notebooks in fabric and glue in office scripts you pay less in compute and far less in attention
293
00:21:09,440 –> 00:21:14,800
no container patching fewer secrets fewer weekend outages defects finally typed boundaries
294
00:21:14,800 –> 00:21:19,920
on connectors office script object models and semantic metadata catch shape errors early agent
295
00:21:19,920 –> 00:21:25,360
guardrails tool calling accuracy context retention kill the fix it Friday break it Monday cycle
296
00:21:25,360 –> 00:21:30,400
recurrence drops because you update patterns not just files practical benchmarks to track
297
00:21:30,400 –> 00:21:36,320
time to resolution per incident tool call success rate and change lead time implementation checklist
298
00:21:36,320 –> 00:21:41,600
pick your orchestrator define contracts templatize prompts add review gates and monitor outcomes
299
00:21:41,600 –> 00:21:47,120
centrally python isn’t dead it’s demoted to its specialty good that’s how you ship it counter-argument
300
00:21:47,120 –> 00:21:52,720
and rebuttal but python dominates data science yes python dominates data science libraries community
301
00:21:52,720 –> 00:21:57,280
notebooks the works in fabric that’s exactly why you keep it inside notebooks and analytics kernels
302
00:21:57,280 –> 00:22:03,280
it’s the engine the truth engines don’t root traffic lights orchestration is roads signals and rules
303
00:22:03,280 –> 00:22:09,120
that’s power platforms domain connectors office scripts data flow gen 2 and co-pilot
304
00:22:09,760 –> 00:22:14,480
here’s what most people blur dominance in analytics doesn’t equal fitness for glue inside
305
00:22:14,480 –> 00:22:20,720
Microsoft stack in power automate python is indirect external compute via azure functions or custom
306
00:22:20,720 –> 00:22:26,240
connectors that adds cost secrets cold starts and version drift meanwhile office scripts run where
307
00:22:26,240 –> 00:22:31,760
your Microsoft 365 data lives and co-pilot drafts them from plain English you’re choosing friction
308
00:22:31,760 –> 00:22:37,120
versus native speed but we need custom logic good put it behind typed boundaries use a fabric
309
00:22:37,120 –> 00:22:42,400
notebook job or ml endpoint for predictions and heavy transforms expose a clean API let the flow
310
00:22:42,400 –> 00:22:47,120
orchestrate with contracts not vibes you get python’s strengths without hand wiring every approval
311
00:22:47,120 –> 00:22:52,640
rename and file hop through a flask app you’ll forget to patch Microsoft’s trajectory reinforces this
312
00:22:52,640 –> 00:22:58,880
split office scripts are the sanctioned scripting edge for m365 co-pilot is semantic model aware in
313
00:22:58,880 –> 00:23:04,720
power bi and data flow gen 2 generating m or python anchored to your metadata agents improve tool
314
00:23:04,720 –> 00:23:10,000
calling accuracy and context retention so the glue is reliable and auditable none of that requires you
315
00:23:10,000 –> 00:23:14,880
to embed orchestration in python hybrid is not a compromise it’s the design type script flavoured
316
00:23:14,880 –> 00:23:20,320
scripts and agents handle the parameter python handles compute they meet at typed APIs or cues
317
00:23:20,320 –> 00:23:24,560
you reduce time to resolution shrink run costs and cut defect recurrence because the seams I
318
00:23:24,560 –> 00:23:30,320
explicit use python where it shines stop forcing it to be duct tape implementation playbook your
319
00:23:30,320 –> 00:23:36,480
next 30 days week one audit tag every workflow and data flow as glue or analytics highlight python
320
00:23:36,480 –> 00:23:42,000
in functions that touch approvals renames or file IO anti patterns document inputs outputs and
321
00:23:42,000 –> 00:23:47,360
failure hotspots pull real metrics incident time to resolution change lead time and tool call success
322
00:23:47,360 –> 00:23:53,600
rate if you have agents if you don’t find establish the baseline now week two migrate trivial glue
323
00:23:53,600 –> 00:23:59,120
replace python endpoints used for excel or sharepoint chores with office scripts plus native connectors
324
00:23:59,120 –> 00:24:05,040
use co pilot to draft scripts from plain English then add a lightweight review checklist column shapes
325
00:24:05,040 –> 00:24:10,480
null handling identity standardized prompt templates and name scripts like adults verb noun with
326
00:24:10,480 –> 00:24:16,960
scope not script final two version them in your repo yes scripts are code week three refactor data flows
327
00:24:16,960 –> 00:24:22,160
move handwritten transforms to co pilot assisted generation in data flow gen 2 keep orchestration out
328
00:24:22,160 –> 00:24:27,840
of python reserved for analytics kernels only validate against your semantic model column names data
329
00:24:27,840 –> 00:24:32,480
types measures capture the diff you accept and added to your prompt library so the next change is a
330
00:24:32,480 –> 00:24:38,480
prompt edit not a spelunking expedition week four introduce an agent for complex orchestration
331
00:24:38,480 –> 00:24:45,040
constrain the toolbox worksheet update table dataverse dot absurd data flow dot run email dot
332
00:24:45,040 –> 00:24:50,560
send define type contracts for each tool including sample payloads and acceptance criteria turn on
333
00:24:50,560 –> 00:24:55,760
pre run validation against samples track tool calling accuracy and time to resolution when the agent
334
00:24:55,760 –> 00:25:01,920
fails fix the pattern update prompts schemas or tool names so recurrence drops governance throughout
335
00:25:01,920 –> 00:25:07,120
and forced typed interfaces at every seam store prompts alongside code add review gates for scripts
336
00:25:07,120 –> 00:25:12,640
and data flow changes centralized telemetry power automate run history data flow lineage and agent
337
00:25:12,640 –> 00:25:18,320
traces in one dashboard rollback plans are non-negotiable previous script versions last known good
338
00:25:18,320 –> 00:25:25,360
data flow and notebook job snapshots exit criteria at day 30 fewer custom connectors for trivial glue
339
00:25:25,360 –> 00:25:30,480
measurable drop in run cost faster changes with smaller blast radius and documented interfaces
340
00:25:30,480 –> 00:25:36,480
that let a new t-made chip in a day not a week python remains inside notebooks and analytics kernels
341
00:25:36,480 –> 00:25:43,680
the glue it’s generated typed and boring that’s the point key takeaway in Microsoft’s ecosystem agents
342
00:25:43,680 –> 00:25:48,560
plus type script flavored scripts orchestrate cleanly while python stays contained in analytics where
343
00:25:48,560 –> 00:25:54,880
libraries actually earn their keep if this saved you time repay the debt subscribe watch the follow
344
00:25:54,880 –> 00:25:59,440
up on building your first type agent playbook with typed two contracts and review gates your ship
345
00:25:59,440 –> 00:26:05,120
faster with fewer outages and finance will finally stop sighing at your invoices proceed