Copilot’s Data Blindness: The Custom Agent Fix

Mirko PetersPodcasts7 hours ago32 Views


1
00:00:00,000 –> 00:00:01,680
You think Copilot knows your business.

2
00:00:01,680 –> 00:00:02,600
It doesn’t. It’s blind.

3
00:00:02,600 –> 00:00:04,600
It sees SharePoint headlines a few emailed

4
00:00:04,600 –> 00:00:07,360
stale teams chat, not the pipeline in Salesforce,

5
00:00:07,360 –> 00:00:08,640
not the outage in ServiceNow,

6
00:00:08,640 –> 00:00:10,000
not your proprietary API.

7
00:00:10,000 –> 00:00:11,120
That’s the fracture.

8
00:00:11,120 –> 00:00:11,960
Here’s the fix.

9
00:00:11,960 –> 00:00:14,120
We’ll build a custom agent that grounds itself

10
00:00:14,120 –> 00:00:15,320
on your real systems.

11
00:00:15,320 –> 00:00:18,760
Salesforce, ServiceNow, your internal rest API.

12
00:00:18,760 –> 00:00:22,440
Gov. auth-ordited actions, live inside Microsoft 365.

13
00:00:22,440 –> 00:00:24,280
By the end, you’ll have an enterprise-grade agent

14
00:00:24,280 –> 00:00:26,000
that actually sees and acts.

15
00:00:26,000 –> 00:00:29,000
No theater, real access, real control, stay.

16
00:00:29,000 –> 00:00:31,000
There’s one step most teams skip.

17
00:00:31,000 –> 00:00:33,240
It’s the difference between noise and truth.

18
00:00:33,240 –> 00:00:36,640
How Copilot sees and why it’s blind by default.

19
00:00:36,640 –> 00:00:38,680
They told you Copilot understands your work.

20
00:00:38,680 –> 00:00:40,960
The truth is simpler and harsher.

21
00:00:40,960 –> 00:00:43,280
Copilot sees what it’s grounded on.

22
00:00:43,280 –> 00:00:45,000
Nothing more, nothing less.

23
00:00:45,000 –> 00:00:49,960
Out of the box, its field of view is your Microsoft 365

24
00:00:49,960 –> 00:00:52,720
work graph, Outlook threads, teams chats, SharePoint

25
00:00:52,720 –> 00:00:55,560
and OneDrive files may be meeting transcripts useful,

26
00:00:55,560 –> 00:00:57,920
but narrow, a soft halo around your daily clicks.

27
00:00:57,920 –> 00:00:58,760
That’s it.

28
00:00:58,760 –> 00:00:59,800
Not see Salesforce.

29
00:00:59,800 –> 00:01:01,520
Not the account health you live and die by.

30
00:01:01,520 –> 00:01:02,800
It does not see ServiceNow.

31
00:01:02,800 –> 00:01:04,280
Not incident priority.

32
00:01:04,280 –> 00:01:05,600
Not breached SLAs.

33
00:01:05,600 –> 00:01:08,160
It does not see your internal system sitting behind a firewall

34
00:01:08,160 –> 00:01:09,480
and a custom schema.

35
00:01:09,480 –> 00:01:10,320
It can’t.

36
00:01:10,320 –> 00:01:11,080
There’s no access path.

37
00:01:11,080 –> 00:01:12,720
No token, no tool, no grounding.

38
00:01:12,720 –> 00:01:14,880
So it guesses, hallucinates or shrugs.

39
00:01:14,880 –> 00:01:16,440
That’s blindness.

40
00:01:16,440 –> 00:01:17,280
Why?

41
00:01:17,280 –> 00:01:18,400
Because identity and data aren’t magic.

42
00:01:18,400 –> 00:01:20,320
They’re pipes, tokens, policies.

43
00:01:20,320 –> 00:01:22,960
If you don’t wire an action path to an external system,

44
00:01:22,960 –> 00:01:24,440
Copilot can’t call it.

45
00:01:24,440 –> 00:01:26,040
If you don’t expose a knowledge source,

46
00:01:26,040 –> 00:01:27,280
Copilot can’t cite it.

47
00:01:27,280 –> 00:01:29,360
If you don’t define instructions with strict boundaries,

48
00:01:29,360 –> 00:01:31,720
Copilot fills the void with confidence and errors.

49
00:01:31,720 –> 00:01:32,520
You’ve seen it.

50
00:01:32,520 –> 00:01:34,040
Friendly, wrong.

51
00:01:34,040 –> 00:01:35,080
Now the good news.

52
00:01:35,080 –> 00:01:36,680
The blindness is optional.

53
00:01:36,680 –> 00:01:38,440
You give it eyes by adding two things.

54
00:01:38,440 –> 00:01:39,480
Knowledge and tools.

55
00:01:39,480 –> 00:01:40,440
Knowledge is grounding.

56
00:01:40,440 –> 00:01:42,720
Documents, sites, tables, the sources you trust.

57
00:01:42,720 –> 00:01:43,600
Add your website.

58
00:01:43,600 –> 00:01:44,600
Add a FAQ.

59
00:01:44,600 –> 00:01:46,680
Add a SharePoint library of SOPs.

60
00:01:46,680 –> 00:01:49,040
In Copilot Studio, you can also attach higher value

61
00:01:49,040 –> 00:01:51,160
enterprise sources and prioritize them.

62
00:01:51,160 –> 00:01:52,560
Studio respects the ranking.

63
00:01:52,560 –> 00:01:53,400
It’s sites.

64
00:01:53,400 –> 00:01:54,680
It stays inside the fence you draw.

65
00:01:54,680 –> 00:01:56,760
If you toggle web search off, it won’t wander.

66
00:01:56,760 –> 00:01:58,720
Control beats clever.

67
00:01:58,720 –> 00:02:02,800
Tools are actions, connectors, flows, APIs.

68
00:02:02,800 –> 00:02:04,920
When you add a tool, you define the verbs your agent

69
00:02:04,920 –> 00:02:05,880
can perform.

70
00:02:05,880 –> 00:02:07,400
Send an email through Outlook.

71
00:02:07,400 –> 00:02:09,240
Pull an opportunity from Salesforce.

72
00:02:09,240 –> 00:02:10,760
Read an incident from ServiceNow.

73
00:02:10,760 –> 00:02:13,680
Call your internal rest endpoint with specific parameters.

74
00:02:13,680 –> 00:02:16,600
Every tool runs under a governed identity.

75
00:02:16,600 –> 00:02:19,680
Your entra up, your scopes, your DLP, no token, no action,

76
00:02:19,680 –> 00:02:21,840
simple rule, critical safety.

77
00:02:21,840 –> 00:02:24,200
What about default Copilot in M365?

78
00:02:24,200 –> 00:02:26,920
It can summarize your word doc, draft or reply, service a file,

79
00:02:26,920 –> 00:02:29,520
but ask it, what’s the renewal risk on Acme?

80
00:02:29,520 –> 00:02:31,080
It searches the work graph.

81
00:02:31,080 –> 00:02:33,600
It finds nothing because the risk lives in Salesforce

82
00:02:33,600 –> 00:02:34,680
in a custom field.

83
00:02:34,680 –> 00:02:37,720
Behind OAuth, unknown, therefore invisible.

84
00:02:37,720 –> 00:02:40,080
Add a Salesforce tool to find the query.

85
00:02:40,080 –> 00:02:42,040
Map fields, constraints, scopes.

86
00:02:42,040 –> 00:02:44,080
Now ask again, it pulls the record.

87
00:02:44,080 –> 00:02:46,760
Grounds the answer, sites the source, no hallucination,

88
00:02:46,760 –> 00:02:49,760
just data, same with ServiceNow, same with your API.

89
00:02:49,760 –> 00:02:52,360
Vision appears the second you wire the access path

90
00:02:52,360 –> 00:02:54,040
and dies the second you remove it.

91
00:02:54,040 –> 00:02:56,160
If you remember nothing else, remember this.

92
00:02:56,160 –> 00:02:57,520
Copilot doesn’t know.

93
00:02:57,520 –> 00:02:58,240
It fetches.

94
00:02:58,240 –> 00:03:00,560
Through the paths you approve, you build the eyes,

95
00:03:00,560 –> 00:03:02,480
you own the site.

96
00:03:02,480 –> 00:03:06,360
Path one, Copilot Studio, declarative agents for makers

97
00:03:06,360 –> 00:03:07,480
and low-code teams.

98
00:03:07,480 –> 00:03:09,200
You don’t fix blindness with hope.

99
00:03:09,200 –> 00:03:10,280
You fix it with wiring.

100
00:03:10,280 –> 00:03:12,760
Studio gives you the wiring without drowning you in code.

101
00:03:12,760 –> 00:03:15,280
Declarative, fast, contained.

102
00:03:15,280 –> 00:03:18,000
Start inside Microsoft 365 Copilot,

103
00:03:18,000 –> 00:03:20,320
create agent, describe, keep it blunt.

104
00:03:20,320 –> 00:03:22,440
An internal agent that answers account health questions

105
00:03:22,440 –> 00:03:25,200
using Salesforce, incident status from ServiceNow

106
00:03:25,200 –> 00:03:28,160
and proprietary product limits from our internal API.

107
00:03:28,160 –> 00:03:30,720
Site sources, refusive data is missing,

108
00:03:30,720 –> 00:03:33,760
no external web, send, watch it, scuffle the shell, good.

109
00:03:33,760 –> 00:03:36,960
Now we harden it, switch to configure, identity first,

110
00:03:36,960 –> 00:03:39,520
name, icon, clear description, then the instructions.

111
00:03:39,520 –> 00:03:42,640
This is the handbook, plain, ruthless.

112
00:03:42,640 –> 00:03:44,720
Only answer using approved knowledge and tools

113
00:03:44,720 –> 00:03:47,040
always cite if a field is missing, say so.

114
00:03:47,040 –> 00:03:50,200
Never guess, escalate to support if confidence is low.

115
00:03:50,200 –> 00:03:53,680
Add fallback, when data is stale, ask to refresh.

116
00:03:53,680 –> 00:03:54,840
You’re not writing poetry.

117
00:03:54,840 –> 00:03:56,640
You’re building guardrails, knowledge next,

118
00:03:56,640 –> 00:04:00,000
grounding at SharePoint SOPs at your internal product FAQ.

119
00:04:00,000 –> 00:04:03,000
If you’ve got a public documentation site at that URL,

120
00:04:03,000 –> 00:04:05,320
then rank high priority for internal SOPs.

121
00:04:05,320 –> 00:04:07,680
Medium for the public docs, disable web search.

122
00:04:07,680 –> 00:04:10,080
You’re curating truth, not collecting trivia.

123
00:04:10,080 –> 00:04:12,400
Tools, this is where the blindness breaks.

124
00:04:12,400 –> 00:04:14,320
Click add tool, Salesforce first.

125
00:04:14,320 –> 00:04:16,560
Choose the Salesforce connector, authenticate

126
00:04:16,560 –> 00:04:18,000
with an approved Entra app.

127
00:04:18,000 –> 00:04:20,800
Scope it tight, read only, accounts opportunities,

128
00:04:20,800 –> 00:04:22,560
help score, answer and see nothing else.

129
00:04:22,560 –> 00:04:25,600
Studio will ask for inputs, define them explicitly.

130
00:04:25,600 –> 00:04:28,160
Account name, fields to return.

131
00:04:28,160 –> 00:04:31,240
Add constraints, account name must match an existing record.

132
00:04:31,240 –> 00:04:35,040
No wildcards, map outputs to clear names, renewal risk,

133
00:04:35,040 –> 00:04:39,240
ARR, next step, source link, describe when to use it.

134
00:04:39,240 –> 00:04:42,280
Invoke for questions about account health, renewal risk,

135
00:04:42,280 –> 00:04:44,600
ARR, owner or next steps.

136
00:04:44,600 –> 00:04:47,040
Service now next, connector, OAuth,

137
00:04:47,040 –> 00:04:51,280
least privilege, incidents read, CMDB, read if you needed.

138
00:04:51,280 –> 00:04:53,920
Inputs, incident number or account name.

139
00:04:53,920 –> 00:04:55,320
Guard the resolution path.

140
00:04:55,320 –> 00:04:58,280
If incident number not provided, search by account name

141
00:04:58,280 –> 00:04:59,280
with limit three.

142
00:04:59,280 –> 00:05:02,720
If multiple, ask the user to disambiguate.

143
00:05:02,720 –> 00:05:06,680
Outputs, priority, state aslastitis, open by updated on link.

144
00:05:06,680 –> 00:05:09,520
User drool, use when user asks about open incidents,

145
00:05:09,520 –> 00:05:11,560
breached SLAs or ticket status.

146
00:05:11,560 –> 00:05:13,200
Now the custom rest API.

147
00:05:13,200 –> 00:05:16,280
Your crown jewels, click add a custom connector if it exists.

148
00:05:16,280 –> 00:05:20,080
If not, select HTTP with Azure AD, provide the base URL.

149
00:05:20,080 –> 00:05:23,000
Scope the enter app to only the needed endpoint.

150
00:05:23,000 –> 00:05:30,720
Post, limits query, inputs, product ID, customer tier, validation.

151
00:05:30,720 –> 00:05:33,880
Reject calls if product ID not in a proof list.

152
00:05:33,880 –> 00:05:36,800
Outputs, max users, rate limit, notes.

153
00:05:36,800 –> 00:05:40,200
User drool, use for product limit, plan entitlements or compliance caps.

154
00:05:40,200 –> 00:05:44,040
This is the moment most teams skip, prioritization and conditions.

155
00:05:44,040 –> 00:05:45,800
Open tool orchestration.

156
00:05:45,800 –> 00:05:48,440
Tell the agent which tool wins when questions overlap.

157
00:05:48,440 –> 00:05:51,200
If the user mentions renewal, prefer Salesforce.

158
00:05:51,200 –> 00:05:54,520
If they mention ticket or priority, prefer service now.

159
00:05:54,520 –> 00:05:58,040
If they mention limit or entitlement, prefer internal API.

160
00:05:58,040 –> 00:05:59,320
Set a confidence floor.

161
00:05:59,320 –> 00:06:01,600
If retrieval returns null for a critical field,

162
00:06:01,600 –> 00:06:03,960
ask a clarifying question before answering.

163
00:06:03,960 –> 00:06:08,040
Test, write, pain, ask, what’s Acme’s renewal risk and open incidents.

164
00:06:08,040 –> 00:06:09,240
Watch the activity map.

165
00:06:09,240 –> 00:06:12,120
It should call Salesforce with account name A.Acme.

166
00:06:12,120 –> 00:06:14,600
Pull healthscore.co.nl/ next step.

167
00:06:14,600 –> 00:06:17,720
Then call service now with account name A.Acme return top incident.

168
00:06:17,720 –> 00:06:19,480
The response should braid both sources.

169
00:06:19,480 –> 00:06:22,760
Scythe both include direct links if it didn’t your tool conditions are wrong.

170
00:06:22,760 –> 00:06:23,560
Fix them now.

171
00:06:23,560 –> 00:06:26,840
Edge cases ask, what’s beta-co’s renewal risk?

172
00:06:26,840 –> 00:06:29,400
If beta-co doesn’t exist, it should refuse politely.

173
00:06:29,400 –> 00:06:31,400
I can’t find beta-co in Salesforce.

174
00:06:31,400 –> 00:06:33,000
Do you mean beta-copleted?

175
00:06:33,000 –> 00:06:34,360
That’s controlled failure.

176
00:06:34,360 –> 00:06:35,000
You want that?

177
00:06:35,000 –> 00:06:38,120
Ask, what are pro-plan API limits for product X?

178
00:06:38,120 –> 00:06:39,720
It should hit your internal API.

179
00:06:39,720 –> 00:06:41,960
Return max users, rate limit, no fluff.

180
00:06:41,960 –> 00:06:43,880
If the tier is unknown, it should ask for tier.

181
00:06:43,880 –> 00:06:49,160
No guessing, safety, turn on audit, studio logs, tool calls, inputs, outputs, latency.

182
00:06:49,160 –> 00:06:52,200
You’ll need that when someone asks why an answer was wrong.

183
00:06:52,200 –> 00:06:53,480
Configure DLP.

184
00:06:53,480 –> 00:06:58,360
If your tenant blocks external connectors for a department move this agent into an approved environment,

185
00:06:58,360 –> 00:06:59,080
don’t sneak it.

186
00:06:59,080 –> 00:07:00,600
It will get blocked mid demo.

187
00:07:00,600 –> 00:07:01,720
You know how that looks?

188
00:07:01,720 –> 00:07:02,440
Bad.

189
00:07:02,440 –> 00:07:03,240
Governance.

190
00:07:03,240 –> 00:07:05,400
Add instructions for PII handling.

191
00:07:05,400 –> 00:07:07,640
Never include full email addresses in responses.

192
00:07:07,640 –> 00:07:09,000
Mask to user at domain.

193
00:07:09,000 –> 00:07:10,280
Add a red team prompt.

194
00:07:10,280 –> 00:07:13,000
If a user asks you to bypass policy refuse.

195
00:07:13,000 –> 00:07:14,360
Add an escalation rule.

196
00:07:14,360 –> 00:07:17,400
If asked to change data, hand off to an owner.

197
00:07:17,400 –> 00:07:18,280
Do not write.

198
00:07:18,280 –> 00:07:19,480
If you need actions later,

199
00:07:19,480 –> 00:07:21,160
you’ll revise scopes and approvals.

200
00:07:21,160 –> 00:07:23,160
For now, read only is your friend.

201
00:07:23,160 –> 00:07:24,200
Performance.

202
00:07:24,200 –> 00:07:25,960
If answers feel slow, reduce fields.

203
00:07:25,960 –> 00:07:27,160
Don’t fetch everything.

204
00:07:27,160 –> 00:07:29,560
Define a minimal projection per tool.

205
00:07:29,560 –> 00:07:31,560
Cash is managed by the platform.

206
00:07:31,560 –> 00:07:33,080
Don’t assume persistence.

207
00:07:33,080 –> 00:07:36,520
Always designed for item-putent fresh reads, licensing reality.

208
00:07:36,520 –> 00:07:39,640
You’ll need co-pilot studio licensing for premium connectors.

209
00:07:39,640 –> 00:07:41,320
Agent execution uses credits.

210
00:07:41,320 –> 00:07:42,920
Connectors may require admin approval.

211
00:07:42,920 –> 00:07:45,000
Get that before you record your it works moment.

212
00:07:45,000 –> 00:07:46,360
Otherwise denial at runtime.

213
00:07:46,360 –> 00:07:47,080
Theater dies.

214
00:07:47,080 –> 00:07:47,560
Truth wins.

215
00:07:47,560 –> 00:07:48,200
Publish.

216
00:07:48,200 –> 00:07:49,480
Share to a pilot group.

217
00:07:49,480 –> 00:07:50,440
Product managers.

218
00:07:50,440 –> 00:07:51,240
Support leads.

219
00:07:51,240 –> 00:07:51,960
Sales ops.

220
00:07:51,960 –> 00:07:54,520
Provide sample prompts as suggested starters.

221
00:07:54,520 –> 00:07:56,680
What’s the renewal risk for Contoso?

222
00:07:56,680 –> 00:07:59,480
List open, save one incidents for North America.

223
00:07:59,480 –> 00:08:01,480
What’s the API limit for plan pro?

224
00:08:01,480 –> 00:08:02,360
Let them break it.

225
00:08:02,360 –> 00:08:03,640
Watch activity map.

226
00:08:03,640 –> 00:08:04,680
Patch instructions.

227
00:08:04,680 –> 00:08:06,040
Titan scopes.

228
00:08:06,040 –> 00:08:07,320
Now you’ve got eyes.

229
00:08:07,320 –> 00:08:08,520
Inside policy.

230
00:08:08,520 –> 00:08:09,560
Inside audit.

231
00:08:09,560 –> 00:08:10,840
Studio did the heavy lifting.

232
00:08:10,840 –> 00:08:11,800
You drew the lines.

233
00:08:11,800 –> 00:08:13,000
The agent obeys.

234
00:08:13,000 –> 00:08:13,960
Pass two.

235
00:08:13,960 –> 00:08:15,560
Teams toolkit for VS code.

236
00:08:15,560 –> 00:08:17,560
Pro, dev, custom agents and plugins.

237
00:08:17,560 –> 00:08:18,520
Studio gave you eyes.

238
00:08:18,520 –> 00:08:20,120
Toolkit gives you surgical hands.

239
00:08:20,120 –> 00:08:20,920
Full control.

240
00:08:20,920 –> 00:08:22,120
No guardrails you didn’t build.

241
00:08:22,120 –> 00:08:24,840
If studio is wiring, toolkit is the circuit board.

242
00:08:24,840 –> 00:08:25,880
Open VS code.

243
00:08:25,880 –> 00:08:27,160
Install teams toolkit.

244
00:08:27,160 –> 00:08:27,720
Quiet.

245
00:08:27,720 –> 00:08:28,600
No fanfare.

246
00:08:28,600 –> 00:08:30,360
Sign in with your tenant dev account.

247
00:08:30,360 –> 00:08:31,640
Not your prod identity.

248
00:08:31,640 –> 00:08:32,920
You already know why.

249
00:08:32,920 –> 00:08:34,200
Create a new project.

250
00:08:34,200 –> 00:08:35,800
Co-pilot plugin with API.

251
00:08:35,800 –> 00:08:38,040
This scaffolds a pro-dev agent capability

252
00:08:38,040 –> 00:08:39,400
for Microsoft 365.

253
00:08:39,400 –> 00:08:40,360
Co-pilot and teams.

254
00:08:40,360 –> 00:08:41,800
It’s not the chat app trope.

255
00:08:41,800 –> 00:08:42,600
It’s a skill.

256
00:08:42,600 –> 00:08:45,480
A tool with strict verbs, schemas and auth.

257
00:08:45,480 –> 00:08:47,400
The model calls your tool when your instructions

258
00:08:47,400 –> 00:08:48,600
and manifests say so.

259
00:08:48,600 –> 00:08:49,800
Precision over vibes.

260
00:08:49,800 –> 00:08:51,000
You’ll see three anchors.

261
00:08:51,000 –> 00:08:51,720
The manifest.

262
00:08:51,720 –> 00:08:53,880
The open API, AI plug-in spec.

263
00:08:53,880 –> 00:08:54,680
The function code.

264
00:08:54,680 –> 00:08:56,280
The manifest declares your capability.

265
00:08:56,280 –> 00:08:57,720
The spec defines your contract.

266
00:08:57,720 –> 00:08:59,960
The function executes with your identity.

267
00:08:59,960 –> 00:09:01,560
Not the model’s fantasy.

268
00:09:01,560 –> 00:09:03,160
Start with identity.

269
00:09:03,160 –> 00:09:05,000
Enter app registration.

270
00:09:05,000 –> 00:09:06,200
Least privilege.

271
00:09:06,200 –> 00:09:07,400
Create a new app.

272
00:09:07,400 –> 00:09:08,040
Name it.

273
00:09:08,040 –> 00:09:09,960
Agent sales force service now.

274
00:09:09,960 –> 00:09:10,920
API.

275
00:09:10,920 –> 00:09:13,640
Add two secrets if you must, but prefer certificate auth.

276
00:09:13,640 –> 00:09:16,120
Add application permissions to your internal API app ID

277
00:09:16,120 –> 00:09:18,280
or I. For sales force and service now,

278
00:09:18,280 –> 00:09:20,680
you’ll use delegated auth or service principles.

279
00:09:20,680 –> 00:09:22,040
We have secure client credentials

280
00:09:22,040 –> 00:09:23,160
flow behind your function.

281
00:09:23,160 –> 00:09:25,080
Never expose raw secrets to the model.

282
00:09:25,080 –> 00:09:25,960
Never.

283
00:09:25,960 –> 00:09:27,800
Back to toolkit, environment files,

284
00:09:27,800 –> 00:09:30,120
and the dev reference as your key vault.

285
00:09:30,120 –> 00:09:31,320
Don’t paste secrets.

286
00:09:31,320 –> 00:09:32,360
Point to secret ure.

287
00:09:32,360 –> 00:09:33,960
Use managed identity when you deploy

288
00:09:33,960 –> 00:09:35,880
to Azure Functions or Container Apps.

289
00:09:35,880 –> 00:09:38,840
Local dev can use developer CLI with federated credentials.

290
00:09:38,840 –> 00:09:39,880
No plain text.

291
00:09:39,880 –> 00:09:41,320
No excuses.

292
00:09:41,320 –> 00:09:43,320
Define the plug in spec.

293
00:09:43,320 –> 00:09:45,080
Open ap.adot.jamil.

294
00:09:45,080 –> 00:09:46,120
Keep it small.

295
00:09:46,120 –> 00:09:47,560
One path per verb.

296
00:09:47,560 –> 00:09:50,120
Salesforceopportunity.get

297
00:09:50,120 –> 00:09:52,440
Service now incident.get.

298
00:09:52,440 –> 00:09:54,040
Internal limits query.

299
00:09:54,040 –> 00:09:55,480
Document parameters.

300
00:09:55,480 –> 00:09:57,880
Account name, opportunity ID, incident number,

301
00:09:57,880 –> 00:09:59,720
product ID, customer tier,

302
00:09:59,720 –> 00:10:02,600
for each write crisp descriptions and constraints.

303
00:10:02,600 –> 00:10:03,640
Account name.

304
00:10:03,640 –> 00:10:05,160
Exact string match to account.

305
00:10:05,160 –> 00:10:05,800
Name.

306
00:10:05,800 –> 00:10:07,240
No wildcards.

307
00:10:07,240 –> 00:10:10,280
Incident number must match INC.paldi+

308
00:10:10,280 –> 00:10:11,800
Include response schemers.

309
00:10:11,800 –> 00:10:13,400
Never return raw records.

310
00:10:13,400 –> 00:10:15,000
Map to a minimal projection.

311
00:10:15,000 –> 00:10:17,480
ID name, status risk, next step link.

312
00:10:17,480 –> 00:10:18,760
The model understands shape and

313
00:10:18,760 –> 00:10:20,920
bigurity invites hallucination.

314
00:10:20,920 –> 00:10:22,120
Why are the handler?

315
00:10:22,120 –> 00:10:24,440
SRC functions opportunity.get.

316
00:10:24,440 –> 00:10:25,000
Tease.

317
00:10:25,000 –> 00:10:26,600
Use an HTTP trigger.

318
00:10:26,600 –> 00:10:28,120
Validate inputs first.

319
00:10:28,120 –> 00:10:29,800
Reject empty account name,

320
00:10:29,800 –> 00:10:32,600
normalize casing, log with correlation ID

321
00:10:32,600 –> 00:10:34,200
acquire token for Salesforce.

322
00:10:34,200 –> 00:10:36,920
Use on behalf of if the user is present in teams.

323
00:10:36,920 –> 00:10:38,840
Or use a service account with read only scope

324
00:10:38,840 –> 00:10:40,360
if this is a backend tool.

325
00:10:40,360 –> 00:10:42,360
Call Salesforce rest.

326
00:10:42,360 –> 00:10:45,080
Services data V59.

327
00:10:45,080 –> 00:10:46,920
Query, queue, select name,

328
00:10:46,920 –> 00:10:50,200
health score, DNC, ARR, GenC, renewal,

329
00:10:50,200 –> 00:10:53,240
risk, see, next step, LACE from

330
00:10:53,240 –> 00:10:55,160
opportunity, where account.

331
00:10:55,160 –> 00:10:56,520
Name, esode, account name,

332
00:10:56,520 –> 00:10:57,160
and is closed.

333
00:10:57,160 –> 00:10:59,640
It falls limit one time out at five seconds.

334
00:10:59,640 –> 00:11:00,600
Retrieves that.

335
00:11:00,600 –> 00:11:02,840
You want fast failure, not zombie weights.

336
00:11:02,840 –> 00:11:03,800
Transform the result.

337
00:11:03,800 –> 00:11:05,720
Map fields.

338
00:11:05,720 –> 00:11:07,640
Compute a simple risk label.

339
00:11:07,640 –> 00:11:09,560
High if health score, EOC.

340
00:11:09,560 –> 00:11:11,960
Four or renewal risks are also high,

341
00:11:11,960 –> 00:11:13,880
who include a deep link, HTTP.

342
00:11:13,880 –> 00:11:15,480
So slash your domain,

343
00:11:15,480 –> 00:11:17,320
lightning.force.com.

344
00:11:17,320 –> 00:11:18,280
Lightning.r.

345
00:11:18,280 –> 00:11:19,480
Opportunity.

346
00:11:19,480 –> 00:11:21,160
I’d view.

347
00:11:21,160 –> 00:11:22,760
Return JSON.

348
00:11:22,760 –> 00:11:24,200
Don’t editorialize.

349
00:11:24,200 –> 00:11:25,400
Don’t summarize.

350
00:11:25,400 –> 00:11:26,840
The model will handle language.

351
00:11:26,840 –> 00:11:28,040
You handle truth.

352
00:11:28,040 –> 00:11:29,240
Repeat for service now.

353
00:11:29,240 –> 00:11:30,520
Incident.get.ts.

354
00:11:30,520 –> 00:11:32,360
Validate incident number or fallback to

355
00:11:32,360 –> 00:11:34,280
account name search with limit three.

356
00:11:34,280 –> 00:11:38,040
If ambiguity, return choices with IDs and titles.

357
00:11:38,040 –> 00:11:40,120
Forced the model to ask the user to choose.

358
00:11:40,120 –> 00:11:41,160
No silent guesses.

359
00:11:41,160 –> 00:11:42,600
Query table API.

360
00:11:42,600 –> 00:11:44,520
API now table incident.

361
00:11:44,520 –> 00:11:45,160
Zeus palm.

362
00:11:45,160 –> 00:11:46,280
Galquery, push number.

363
00:11:46,280 –> 00:11:48,360
I and C as you 12345.

364
00:11:48,360 –> 00:11:49,080
CIS palm.

365
00:11:49,080 –> 00:11:49,800
Fields.

366
00:11:49,800 –> 00:11:50,920
Number priority.

367
00:11:50,920 –> 00:11:51,560
State.

368
00:11:51,560 –> 00:11:52,040
Short.

369
00:11:52,040 –> 00:11:52,760
Description.

370
00:11:52,760 –> 00:11:53,960
CIS updated on.

371
00:11:53,960 –> 00:11:54,440
CIS.

372
00:11:54,440 –> 00:11:55,240
Idtismap.

373
00:11:55,240 –> 00:11:57,160
State to a normalized enum.

374
00:11:57,160 –> 00:11:59,240
New in progress resolved.

375
00:11:59,240 –> 00:12:02,280
Derive SLL breach Boolean if needed from a second call.

376
00:12:02,280 –> 00:12:03,960
API now a table source task.

377
00:12:03,960 –> 00:12:05,400
Esla task.

378
00:12:05,400 –> 00:12:06,760
Keep it under two calls.

379
00:12:06,760 –> 00:12:08,680
Speed matters.

380
00:12:08,680 –> 00:12:10,840
Then the internal API.

381
00:12:10,840 –> 00:12:12,040
LimitSquery.ts.

382
00:12:12,040 –> 00:12:14,760
Acquired token for your API scope.

383
00:12:14,760 –> 00:12:18,040
Post limitSquery with product id and customer tier.

384
00:12:18,040 –> 00:12:21,240
Validate both against a local allow list cashed in config.

385
00:12:21,240 –> 00:12:22,840
Never let the model invent IDs.

386
00:12:22,840 –> 00:12:24,760
Return max users rate limit per minute.

387
00:12:24,760 –> 00:12:25,960
Notes linked to policy.

388
00:12:25,960 –> 00:12:28,280
If the API returns 404 propagated,

389
00:12:28,280 –> 00:12:31,400
the model should ask for a valid product that safe failure.

390
00:12:31,400 –> 00:12:32,360
Add policy.

391
00:12:32,360 –> 00:12:34,040
A thin guardrail middleware.

392
00:12:34,040 –> 00:12:37,080
If user context exists in force conditional access claims.

393
00:12:37,080 –> 00:12:40,600
If department alcohol sales and path starts with our sales force

394
00:12:40,600 –> 00:12:42,040
block with 403.

395
00:12:42,040 –> 00:12:46,760
If gosls.us and path exorcist CIS internal limits query and data

396
00:12:46,760 –> 00:12:50,120
residency is us only block return a clear short reason.

397
00:12:50,120 –> 00:12:51,720
The model can relay the denial.

398
00:12:51,720 –> 00:12:53,160
This is where governance meets code.

399
00:12:53,160 –> 00:12:54,200
They asked for control.

400
00:12:54,200 –> 00:12:55,560
You deliver it.

401
00:12:55,560 –> 00:12:56,840
Write unit tests.

402
00:12:56,840 –> 00:12:59,480
Just mock HTTP clients.

403
00:12:59,480 –> 00:13:00,760
Golden samples.

404
00:13:00,760 –> 00:13:02,040
One test per path.

405
00:13:02,040 –> 00:13:05,560
Success not found in valid input policy block timeout.

406
00:13:05,560 –> 00:13:07,000
CI runs them on every push.

407
00:13:07,000 –> 00:13:08,920
Toolkit integrates with GitHub actions.

408
00:13:08,920 –> 00:13:11,240
Add build, test, lint, deploy to dev.

409
00:13:11,240 –> 00:13:12,280
You’re not doing theater.

410
00:13:12,280 –> 00:13:14,040
You’re shipping controlled access.

411
00:13:14,040 –> 00:13:14,920
Local test.

412
00:13:14,920 –> 00:13:15,800
Teams toolkit.

413
00:13:15,800 –> 00:13:16,600
Preview in teams.

414
00:13:16,600 –> 00:13:17,240
Local.

415
00:13:17,240 –> 00:13:18,680
It spins up on Grog.

416
00:13:18,680 –> 00:13:19,880
Register your plugin.

417
00:13:19,880 –> 00:13:22,760
Open Microsoft 365 co-pilot in team sandbox.

418
00:13:22,760 –> 00:13:25,960
Ask what’s Acquired’s renewal risk and open incidents.

419
00:13:25,960 –> 00:13:27,000
The agent routes.

420
00:13:27,000 –> 00:13:28,520
It should call your opportunity get.

421
00:13:28,520 –> 00:13:31,320
Then incident get watch logs correlation it ties the chain.

422
00:13:31,320 –> 00:13:32,760
200 200.

423
00:13:32,760 –> 00:13:35,400
Response merges in the model layer with your JSON.

424
00:13:35,400 –> 00:13:37,080
It cites your tool by name.

425
00:13:37,080 –> 00:13:39,960
If it doesn’t, fix the manifest actions descriptions.

426
00:13:39,960 –> 00:13:41,080
The model needs the hint,

427
00:13:41,080 –> 00:13:43,240
Perfcheck if latency crosses three seconds,

428
00:13:43,240 –> 00:13:43,960
trim fields.

429
00:13:43,960 –> 00:13:45,400
Cash allow lists in memory.

430
00:13:45,400 –> 00:13:47,960
Prefer HTTP to keep TLS warm.

431
00:13:47,960 –> 00:13:50,280
Move to Azure Functions premium or container apps with

432
00:13:50,280 –> 00:13:51,480
my instances.

433
00:13:51,480 –> 00:13:52,680
Code starts are death.

434
00:13:52,680 –> 00:13:54,840
Set Function Timeout to 10 seconds max.

435
00:13:54,840 –> 00:13:55,560
Fail fast.

436
00:13:55,560 –> 00:13:56,520
Explain fast.

437
00:13:56,520 –> 00:13:57,240
Deploy.

438
00:13:57,240 –> 00:13:59,080
Teams toolkit provision to Azure.

439
00:13:59,080 –> 00:14:00,840
Port slot with managed identity.

440
00:14:00,840 –> 00:14:01,720
Bind Key Vault.

441
00:14:01,720 –> 00:14:04,040
Register the plugin in Teams admin center.

442
00:14:04,040 –> 00:14:05,480
Scope it to a security group.

443
00:14:05,480 –> 00:14:06,760
Pilot group only.

444
00:14:06,760 –> 00:14:07,880
Add monitoring.

445
00:14:07,880 –> 00:14:09,240
Application insights.

446
00:14:09,240 –> 00:14:10,520
Custom dimensions.

447
00:14:10,520 –> 00:14:11,640
User ED hashed.

448
00:14:11,640 –> 00:14:12,280
Tool name.

449
00:14:12,280 –> 00:14:12,920
Status code.

450
00:14:12,920 –> 00:14:14,040
Miss build dashboards.

451
00:14:14,040 –> 00:14:15,640
You’ll need them when leadership asks.

452
00:14:15,640 –> 00:14:16,760
Is it safe?

453
00:14:16,760 –> 00:14:18,360
You’ll point numbers don’t lie.

454
00:14:18,360 –> 00:14:20,200
Now pair it with your studio agent.

455
00:14:20,200 –> 00:14:21,880
Studio calls your plugin as a tool.

456
00:14:21,880 –> 00:14:22,760
You get best of both.

457
00:14:22,760 –> 00:14:24,040
The Clarity of Orchestration.

458
00:14:24,040 –> 00:14:25,000
ProDev Precision.

459
00:14:25,000 –> 00:14:25,880
Blindness removed.

460
00:14:25,880 –> 00:14:26,840
Access contained.

461
00:14:26,840 –> 00:14:27,800
Audited whisper it.

462
00:14:27,800 –> 00:14:28,440
Control.

463
00:14:28,440 –> 00:14:31,800
Head to head demo studio versus toolkit on the same use case.

464
00:14:31,800 –> 00:14:32,920
Same question.

465
00:14:32,920 –> 00:14:33,800
Two parts.

466
00:14:33,800 –> 00:14:35,560
Watch the divergence.

467
00:14:35,560 –> 00:14:37,080
Prompt in studio.

468
00:14:37,080 –> 00:14:39,800
What’s AgMee’s renewal risk and any open savvy one

469
00:14:39,800 –> 00:14:42,440
incidents also confirm API limits for product X

470
00:14:42,440 –> 00:14:43,320
Pro tier.

471
00:14:43,320 –> 00:14:44,760
The agent reads the instructions.

472
00:14:44,760 –> 00:14:47,240
Picks tools based on your orchestration rules.

473
00:14:47,240 –> 00:14:48,120
First call.

474
00:14:48,120 –> 00:14:48,760
Sales force.

475
00:14:48,760 –> 00:14:50,840
Inputs show in the activity map.

476
00:14:50,840 –> 00:14:51,560
Account name.

477
00:14:51,560 –> 00:14:52,600
AgMee.

478
00:14:52,600 –> 00:14:53,240
Fields.

479
00:14:53,240 –> 00:14:54,600
Health score time to see.

480
00:14:54,600 –> 00:14:55,800
AR RNC.

481
00:14:55,800 –> 00:14:57,240
Renewal risk.c.

482
00:14:57,240 –> 00:14:58,360
Next step.c.

483
00:14:58,360 –> 00:15:00,760
Read only scope 500 millisecond round trip.

484
00:15:00,760 –> 00:15:02,120
It returns a clean object.

485
00:15:02,120 –> 00:15:03,240
Studio labels it.

486
00:15:03,240 –> 00:15:04,840
Sites sales force.

487
00:15:04,840 –> 00:15:05,560
Second call.

488
00:15:05,560 –> 00:15:06,440
Service now.

489
00:15:06,440 –> 00:15:07,000
Account name.

490
00:15:07,000 –> 00:15:07,560
AgMee.

491
00:15:07,560 –> 00:15:08,360
Limit three.

492
00:15:08,360 –> 00:15:09,400
It finds two incidents.

493
00:15:09,400 –> 00:15:10,440
Ambiguity.

494
00:15:10,440 –> 00:15:12,200
Your rule forces a clarifying question.

495
00:15:12,200 –> 00:15:16,440
Did you mean INC 01245 or INC 01301?

496
00:15:16,440 –> 00:15:18,920
You pick INC 01301.

497
00:15:18,920 –> 00:15:19,560
Priority.

498
00:15:19,560 –> 00:15:20,120
One.

499
00:15:20,120 –> 00:15:20,600
State.

500
00:15:20,600 –> 00:15:21,400
In progress.

501
00:15:21,400 –> 00:15:22,360
SLA status.

502
00:15:22,360 –> 00:15:23,000
Breached.

503
00:15:23,000 –> 00:15:23,480
Studio.

504
00:15:23,480 –> 00:15:25,320
Brades the answer with both citations

505
00:15:25,320 –> 00:15:26,280
and direct links.

506
00:15:26,280 –> 00:15:27,240
No editorializing.

507
00:15:27,240 –> 00:15:28,200
Just what you told it.

508
00:15:28,200 –> 00:15:28,680
Third call.

509
00:15:28,680 –> 00:15:29,800
Internal API.

510
00:15:29,800 –> 00:15:30,440
Product ID.

511
00:15:30,440 –> 00:15:31,320
ProDxCustomer.

512
00:15:31,320 –> 00:15:32,040
ProDx.

513
00:15:32,040 –> 00:15:33,320
It returns max users.

514
00:15:33,320 –> 00:15:33,960
100.

515
00:15:33,960 –> 00:15:34,920
Rate limit per minute.

516
00:15:34,920 –> 00:15:35,800
600 nodes.

517
00:15:35,800 –> 00:15:36,600
Burst to 900.

518
00:15:36,600 –> 00:15:37,240
With approval.

519
00:15:37,240 –> 00:15:38,440
Policy link provided.

520
00:15:38,440 –> 00:15:39,720
Studio stitches it at the end.

521
00:15:39,720 –> 00:15:41,000
All three sources ranked.

522
00:15:41,000 –> 00:15:42,920
If any field was now it calls that out.

523
00:15:42,920 –> 00:15:44,600
You build that fail-loud behavior.

524
00:15:44,600 –> 00:15:45,560
It obeys.

525
00:15:45,560 –> 00:15:48,120
Latency total about two seconds with healthy backends.

526
00:15:48,120 –> 00:15:49,160
You never touched code.

527
00:15:49,160 –> 00:15:50,280
You defined verbs.

528
00:15:50,280 –> 00:15:51,320
Inputs outputs.

529
00:15:51,320 –> 00:15:51,880
Priority.

530
00:15:51,880 –> 00:15:53,240
The model handled language.

531
00:15:53,240 –> 00:15:54,760
Studio handled wiring.

532
00:15:54,760 –> 00:15:56,920
Identity stayed inside your tenant guardrails.

533
00:15:56,920 –> 00:15:58,520
Audit captured every call.

534
00:15:58,520 –> 00:16:00,200
Now the same request to Toolkit.

535
00:16:00,200 –> 00:16:02,600
You’re in Teams co-pilot with your plug and registered.

536
00:16:02,600 –> 00:16:04,520
The model reads your manifest inspect.

537
00:16:04,520 –> 00:16:06,200
It decides your tools match the intent.

538
00:16:06,200 –> 00:16:07,240
It calls opportunity.

539
00:16:07,240 –> 00:16:08,120
Get with account name.

540
00:16:08,120 –> 00:16:08,760
Acme.

541
00:16:08,760 –> 00:16:10,200
Your function validates input.

542
00:16:10,200 –> 00:16:11,640
LogScorrelation ID.

543
00:16:11,640 –> 00:16:13,080
Gets it token.

544
00:16:13,080 –> 00:16:15,640
Runs the SOical query with a strict projection.

545
00:16:15,640 –> 00:16:16,200
Returns.

546
00:16:16,200 –> 00:16:16,600
Jason.

547
00:16:16,600 –> 00:16:17,080
A risk.

548
00:16:17,080 –> 00:16:17,480
High.

549
00:16:17,480 –> 00:16:18,360
Health score.

550
00:16:18,360 –> 00:16:19,320
36.

551
00:16:19,320 –> 00:16:20,040
AR.

552
00:16:20,040 –> 00:16:21,080
1.26.

553
00:16:21,080 –> 00:16:21,960
Next step.

554
00:16:21,960 –> 00:16:22,520
Exec.

555
00:16:22,520 –> 00:16:23,080
QBR.

556
00:16:23,080 –> 00:16:23,880
615.

557
00:16:23,880 –> 00:16:24,840
Link on.

558
00:16:24,840 –> 00:16:26,760
The model renders it in plain English.

559
00:16:26,760 –> 00:16:28,360
It cites your tool by name.

560
00:16:28,360 –> 00:16:30,040
Next, it calls incident get.

561
00:16:30,040 –> 00:16:32,520
You accept either incident number or account name.

562
00:16:32,520 –> 00:16:33,320
It got account name.

563
00:16:33,320 –> 00:16:35,880
You return two candidates because ambiguity is dangerous.

564
00:16:35,880 –> 00:16:37,480
The model asks the user to choose.

565
00:16:37,480 –> 00:16:38,600
You receive INC.

566
00:16:38,600 –> 00:16:39,720
0.013.

567
00:16:39,720 –> 00:16:40,120
0.1.

568
00:16:40,120 –> 00:16:41,000
You query.

569
00:16:41,000 –> 00:16:41,720
Map state.

570
00:16:41,720 –> 00:16:42,520
Compute breached.

571
00:16:42,520 –> 00:16:43,160
True.

572
00:16:43,160 –> 00:16:45,080
Return a normalized incident object.

573
00:16:45,080 –> 00:16:46,200
Again, the model narrates.

574
00:16:46,200 –> 00:16:47,320
It cites the tool.

575
00:16:47,320 –> 00:16:48,440
Then limits query.

576
00:16:48,440 –> 00:16:49,080
Product ID.

577
00:16:49,080 –> 00:16:49,400
Pro.

578
00:16:49,400 –> 00:16:49,880
X.

579
00:16:49,880 –> 00:16:50,600
Customer tier.

580
00:16:50,600 –> 00:16:51,240
Pro.

581
00:16:51,240 –> 00:16:53,480
Your handler checks both against an allow list.

582
00:16:53,480 –> 00:16:54,200
Valid.

583
00:16:54,200 –> 00:16:56,120
Your query an API scope token.

584
00:16:56,120 –> 00:16:56,760
Post.

585
00:16:56,760 –> 00:16:57,480
Transform.

586
00:16:57,480 –> 00:16:58,920
Return the minimal policy.

587
00:16:58,920 –> 00:16:59,720
Max users.

588
00:16:59,720 –> 00:17:00,680
Rate limit per minute.

589
00:17:00,680 –> 00:17:02,120
Burst policy policy link.

590
00:17:02,120 –> 00:17:03,320
The model presents it.

591
00:17:03,320 –> 00:17:04,520
One paragraph.

592
00:17:04,520 –> 00:17:05,800
Three citations.

593
00:17:05,800 –> 00:17:07,080
Consistent shape.

594
00:17:07,080 –> 00:17:08,040
What changed?

595
00:17:08,040 –> 00:17:09,240
Control.

596
00:17:09,240 –> 00:17:11,080
With studio you moved knobs.

597
00:17:11,080 –> 00:17:12,760
With toolkit you wired the board.

598
00:17:12,760 –> 00:17:14,360
You wrote the input validation.

599
00:17:14,360 –> 00:17:15,480
You chose the projection.

600
00:17:15,480 –> 00:17:16,920
You enforced policy in code.

601
00:17:16,920 –> 00:17:18,120
Performance is tighter.

602
00:17:18,120 –> 00:17:20,040
Error messages are yours not generic.

603
00:17:20,040 –> 00:17:21,480
You can add custom caching.

604
00:17:21,480 –> 00:17:22,760
Retrize circuit breakers.

605
00:17:22,760 –> 00:17:25,160
You can add per department deny rules in middleware.

606
00:17:25,160 –> 00:17:26,120
You own the latency.

607
00:17:26,120 –> 00:17:27,400
You own the blast radius.

608
00:17:27,400 –> 00:17:28,600
And here’s the hinge.

609
00:17:28,600 –> 00:17:30,280
Studio and toolkit aren’t rivals.

610
00:17:30,280 –> 00:17:32,520
Their layers let the studio agent orchestrate.

611
00:17:32,520 –> 00:17:34,360
Let your toolkit plug in execute.

612
00:17:34,360 –> 00:17:35,720
Studio roots the question.

613
00:17:35,720 –> 00:17:37,560
Toolkit tools deliver the truth.

614
00:17:37,560 –> 00:17:38,440
One brain.

615
00:17:38,440 –> 00:17:39,400
Many hands.

616
00:17:39,400 –> 00:17:40,840
Side with precision.

617
00:17:40,840 –> 00:17:43,240
Where most teams fail, they stop at studio.

618
00:17:43,240 –> 00:17:44,280
Or they stop at toolkit.

619
00:17:44,280 –> 00:17:45,240
They don’t pair them.

620
00:17:45,240 –> 00:17:47,160
They accept blindness or accept chaos.

621
00:17:47,160 –> 00:17:47,720
Don’t.

622
00:17:47,720 –> 00:17:50,200
Use studio for fast orchestration and governance.

623
00:17:50,200 –> 00:17:52,680
Use toolkit for hard edges, identity and shape.

624
00:17:52,680 –> 00:17:54,360
Together the model can’t wander.

625
00:17:54,360 –> 00:17:56,360
It can only act where you’ve drawn the map.

626
00:17:56,360 –> 00:17:57,400
Ask the question again.

627
00:17:57,400 –> 00:17:58,360
The answers match.

628
00:17:58,360 –> 00:18:01,960
Same risk, same incident, same limits, two stacks, one outcome.

629
00:18:01,960 –> 00:18:02,680
That’s not luck.

630
00:18:02,680 –> 00:18:03,560
That’s design.

631
00:18:03,560 –> 00:18:05,560
Enterprise constraints you can’t ignore.

632
00:18:05,560 –> 00:18:07,080
This is where your demo dies.

633
00:18:07,080 –> 00:18:07,800
Or lives.

634
00:18:07,800 –> 00:18:09,640
Because the enterprise doesn’t care about clever.

635
00:18:09,640 –> 00:18:10,760
It cares about control.

636
00:18:10,760 –> 00:18:11,640
Licensing first.

637
00:18:11,640 –> 00:18:13,880
You need co-pilot for Microsoft 365

638
00:18:13,880 –> 00:18:16,120
for users to even see co-pilot inside teams.

639
00:18:16,120 –> 00:18:17,000
Word outlook.

640
00:18:17,000 –> 00:18:18,920
You need co-pilot studio licensing for agents

641
00:18:18,920 –> 00:18:19,960
and premium connectors.

642
00:18:19,960 –> 00:18:21,480
Execution uses credits.

643
00:18:21,480 –> 00:18:23,560
Salesforce and service now are premium.

644
00:18:23,560 –> 00:18:25,240
If your tenant doesn’t have approvals,

645
00:18:25,240 –> 00:18:26,840
your calls will fail at runtime.

646
00:18:26,840 –> 00:18:27,720
Plan the licenses.

647
00:18:27,720 –> 00:18:30,200
Get admin approval for connectors before you press record.

648
00:18:30,200 –> 00:18:31,480
Admin approvals.

649
00:18:31,480 –> 00:18:32,200
Two gates.

650
00:18:32,200 –> 00:18:34,280
Entra ID for app permissions.

651
00:18:34,280 –> 00:18:36,040
Power platform for connector consent.

652
00:18:36,040 –> 00:18:38,360
Your Salesforce connector needs an OAuth app

653
00:18:38,360 –> 00:18:40,440
approved by the Salesforce admin.

654
00:18:40,440 –> 00:18:43,240
Your service now connector needs a per instance client.

655
00:18:43,240 –> 00:18:46,440
Your internal API needs an entra app with the right scopes.

656
00:18:46,440 –> 00:18:49,400
If you try to add a tool without tenant admin approval,

657
00:18:49,400 –> 00:18:51,080
studio hides it or blocks it.

658
00:18:51,080 –> 00:18:51,880
That’s not a bug.

659
00:18:51,880 –> 00:18:54,040
That’s boundary, tenant security and DLP.

660
00:18:54,040 –> 00:18:57,240
Many orgs block external connectors in default environments.

661
00:18:57,240 –> 00:18:58,680
If you build in the wrong environment,

662
00:18:58,680 –> 00:19:00,440
DLP will silently neuter your agent.

663
00:19:00,440 –> 00:19:03,240
Place the agent in an environment classified as business.

664
00:19:03,240 –> 00:19:05,320
Put your connectors in the same DLP data group.

665
00:19:05,320 –> 00:19:07,960
If marketing and finance can’t mix data,

666
00:19:07,960 –> 00:19:10,200
you can’t road answers across both.

667
00:19:10,200 –> 00:19:13,160
Respect the policy or you’ll see action blocked by DLP.

668
00:19:13,160 –> 00:19:14,280
Not a mystery, a rule.

669
00:19:14,280 –> 00:19:16,120
Conditional access agents are just apps.

670
00:19:16,120 –> 00:19:17,800
CA policies apply.

671
00:19:17,800 –> 00:19:19,160
If your agent calls the plugin

672
00:19:19,160 –> 00:19:21,960
that hits Salesforce and the user is on an unmanaged device,

673
00:19:21,960 –> 00:19:23,880
your on behalf of Flow may be blocked.

674
00:19:23,880 –> 00:19:24,920
Design fallbacks.

675
00:19:24,920 –> 00:19:26,600
If CA denies OBO,

676
00:19:26,600 –> 00:19:28,280
have your function use a service account

677
00:19:28,280 –> 00:19:30,280
with read-only scope for non-sensitive reads

678
00:19:30,280 –> 00:19:31,560
or fail with a clear message.

679
00:19:31,560 –> 00:19:33,800
Access blocked by policy.

680
00:19:33,800 –> 00:19:35,160
Use a managed device.

681
00:19:35,160 –> 00:19:35,800
Don’t leak.

682
00:19:35,800 –> 00:19:36,840
Don’t bypass.

683
00:19:36,840 –> 00:19:37,960
Data residency.

684
00:19:37,960 –> 00:19:39,400
Where does grounding live?

685
00:19:39,400 –> 00:19:41,000
Studio stores agent configuration

686
00:19:41,000 –> 00:19:43,240
and knowledge indexing in your selected region.

687
00:19:43,240 –> 00:19:45,960
If your internal API serves US only data

688
00:19:45,960 –> 00:19:48,440
and your user is in EU, don’t route it.

689
00:19:48,440 –> 00:19:50,760
Add geo checks in your toolkit middleware.

690
00:19:50,760 –> 00:19:51,960
Block if user geo.

691
00:19:51,960 –> 00:19:52,680
X allowed.

692
00:19:52,680 –> 00:19:54,040
Return a short denial reason.

693
00:19:54,040 –> 00:19:54,440
Log it.

694
00:19:54,440 –> 00:19:55,480
You’ll need that for audit.

695
00:19:55,480 –> 00:19:56,760
Permissions boundaries.

696
00:19:56,760 –> 00:19:58,520
Least privileged by default.

697
00:19:58,520 –> 00:20:00,920
Your Salesforce scopes should be read only for accounts

698
00:20:00,920 –> 00:20:02,120
and opportunities.

699
00:20:02,120 –> 00:20:03,080
No wildcards.

700
00:20:03,080 –> 00:20:04,920
Your service now role should read incidents

701
00:20:04,920 –> 00:20:06,680
and if required task SLA.

702
00:20:06,680 –> 00:20:07,640
Don’t add update.

703
00:20:07,640 –> 00:20:09,640
You will be asked to just fix a ticket.

704
00:20:09,640 –> 00:20:10,280
Don’t.

705
00:20:10,280 –> 00:20:11,560
Keep action separate.

706
00:20:11,560 –> 00:20:13,160
Add right verbs only when governance

707
00:20:13,160 –> 00:20:14,520
and approvals exist.

708
00:20:14,520 –> 00:20:16,520
Otherwise one prompt turns into a record change

709
00:20:16,520 –> 00:20:17,640
with no change control.

710
00:20:17,640 –> 00:20:19,640
That’s breach bait environments.

711
00:20:19,640 –> 00:20:20,680
Dev test.

712
00:20:20,680 –> 00:20:21,160
Prod.

713
00:20:21,160 –> 00:20:21,880
Don’t skip them.

714
00:20:21,880 –> 00:20:25,080
Studio agents belong in a managed environment with ALM.

715
00:20:25,080 –> 00:20:26,120
Export import.

716
00:20:26,120 –> 00:20:27,320
Use solutions.

717
00:20:27,320 –> 00:20:29,160
Toolkit plugins deploy to dev subscription.

718
00:20:29,160 –> 00:20:29,880
Then test.

719
00:20:29,880 –> 00:20:30,680
Then prod.

720
00:20:30,680 –> 00:20:33,000
Use separate entra apps and key vaults per stage.

721
00:20:33,000 –> 00:20:34,680
Feature flags per environment.

722
00:20:34,680 –> 00:20:36,120
Turn on only what you need.

723
00:20:36,120 –> 00:20:37,640
Your future self will thank you.

724
00:20:37,640 –> 00:20:38,600
Logging and audit.

725
00:20:38,600 –> 00:20:40,840
Turn on application insights for toolkit.

726
00:20:40,840 –> 00:20:43,240
Inject correlation it from the model call into logs.

727
00:20:43,240 –> 00:20:44,680
Log input shape not PI.

728
00:20:44,680 –> 00:20:46,120
Log outbound domains.

729
00:20:46,120 –> 00:20:46,920
Status codes.

730
00:20:46,920 –> 00:20:47,720
Latency.

731
00:20:47,720 –> 00:20:50,600
For studio watch activity map and export analytics.

732
00:20:50,600 –> 00:20:52,360
You need a story when someone asks

733
00:20:52,360 –> 00:20:55,080
who saw what when without logs it’s vibes.

734
00:20:55,080 –> 00:20:57,480
With logs it’s truth monitoring and SLOs.

735
00:20:57,480 –> 00:20:58,520
Set alerts.

736
00:20:58,520 –> 00:21:02,280
If sales force tool errors 2% in 5 minutes page the owner.

737
00:21:02,280 –> 00:21:05,560
If latency crosses 3 seconds P95 degrade gracefully.

738
00:21:05,560 –> 00:21:06,360
Trim fields.

739
00:21:06,360 –> 00:21:08,440
Tell the user you’re fetching a minimal view.

740
00:21:08,440 –> 00:21:09,160
Don’t freeze.

741
00:21:09,160 –> 00:21:10,520
Don’t pretend.

742
00:21:10,520 –> 00:21:11,400
Governance.

743
00:21:11,400 –> 00:21:12,360
Write the policy.

744
00:21:12,360 –> 00:21:13,800
PII masking.

745
00:21:13,800 –> 00:21:16,040
Mask emails to UCAD domain.

746
00:21:16,040 –> 00:21:17,400
Refuse exfiltration.

747
00:21:17,400 –> 00:21:19,880
Don’t paste raw data to external channels.

748
00:21:19,880 –> 00:21:20,920
Read to your agent.

749
00:21:20,920 –> 00:21:22,440
Prompt it to bypass rules.

750
00:21:22,440 –> 00:21:24,600
If it tries, tighten instructions or middleware.

751
00:21:24,600 –> 00:21:25,640
You’re not paranoid.

752
00:21:25,640 –> 00:21:27,000
You’re prepared.

753
00:21:27,000 –> 00:21:28,280
One more constraint.

754
00:21:28,280 –> 00:21:28,920
Humans.

755
00:21:28,920 –> 00:21:29,960
Train your users.

756
00:21:29,960 –> 00:21:31,880
Suggested prompts aren’t decoration.

757
00:21:31,880 –> 00:21:32,920
They’re on ramps.

758
00:21:32,920 –> 00:21:34,440
Show them what the agent knows.

759
00:21:34,440 –> 00:21:35,320
What it refuses.

760
00:21:35,320 –> 00:21:36,040
What it logs.

761
00:21:36,040 –> 00:21:36,920
Set expectations.

762
00:21:36,920 –> 00:21:38,120
You reduce shadow prompts.

763
00:21:38,120 –> 00:21:39,160
You reduce risk.

764
00:21:39,160 –> 00:21:41,480
Ignore any of this and the system will ignore you.

765
00:21:41,480 –> 00:21:45,400
Respect it and your agent will survive first contact with the enterprise.

766
00:21:45,400 –> 00:21:48,440
Build along your first enterprise agent in co-pilot studio.

767
00:21:48,440 –> 00:21:49,480
Step by step.

768
00:21:49,480 –> 00:21:52,200
Open Microsoft 365 co-pilot.

769
00:21:52,200 –> 00:21:53,320
Create agent.

770
00:21:53,320 –> 00:21:54,920
Describe it bluntly.

771
00:21:54,920 –> 00:21:58,120
Internal agent for account health and incident status.

772
00:21:58,120 –> 00:21:58,760
Sources.

773
00:21:58,760 –> 00:21:59,560
Salesforce.

774
00:21:59,560 –> 00:22:01,400
Service now internal limits API.

775
00:22:01,400 –> 00:22:02,040
Site.

776
00:22:02,040 –> 00:22:03,320
Refuse when data is missing.

777
00:22:03,320 –> 00:22:04,120
No web.

778
00:22:04,120 –> 00:22:05,320
Send switch to configure.

779
00:22:05,320 –> 00:22:05,880
Name it.

780
00:22:05,880 –> 00:22:06,760
Set the icon.

781
00:22:06,760 –> 00:22:07,960
Now the handbook.

782
00:22:07,960 –> 00:22:09,880
In instructions paste clear rules.

783
00:22:09,880 –> 00:22:11,800
Only use approved knowledge and tools.

784
00:22:11,800 –> 00:22:12,760
Always site.

785
00:22:12,760 –> 00:22:15,000
Ask clarifying questions on ambiguity.

786
00:22:15,000 –> 00:22:16,040
Never guess.

787
00:22:16,040 –> 00:22:17,240
Mask PII.

788
00:22:17,240 –> 00:22:19,000
Refuse policy bypass.

789
00:22:19,000 –> 00:22:21,240
Knowledge at your SharePoint SOP library.

790
00:22:21,240 –> 00:22:22,920
Add your internal product FAQ.

791
00:22:22,920 –> 00:22:24,840
Rank SOP’s first FAQ second.

792
00:22:24,840 –> 00:22:26,600
Turn web search of tools.

793
00:22:26,600 –> 00:22:28,120
Add salesforce connector.

794
00:22:28,120 –> 00:22:30,280
Authenticate within approved Entra app.

795
00:22:30,280 –> 00:22:31,800
Read only scopes.

796
00:22:31,800 –> 00:22:33,480
Inputs account name.

797
00:22:33,480 –> 00:22:33,960
Fields.

798
00:22:33,960 –> 00:22:34,440
Health score.

799
00:22:34,440 –> 00:22:35,000
Don’t will see.

800
00:22:35,000 –> 00:22:35,960
R2 or C.

801
00:22:35,960 –> 00:22:37,320
Renewal risk go C.

802
00:22:37,320 –> 00:22:38,760
Next step R or C.

803
00:22:38,760 –> 00:22:39,640
Link.

804
00:22:39,640 –> 00:22:40,280
Usage.

805
00:22:40,280 –> 00:22:41,480
Renewal risk health.

806
00:22:41,480 –> 00:22:42,840
ARR owner.

807
00:22:42,840 –> 00:22:44,200
Add service now connector.

808
00:22:44,200 –> 00:22:45,800
O-auth to your instance.

809
00:22:45,800 –> 00:22:46,440
Rolls.

810
00:22:46,440 –> 00:22:47,240
Read incidents.

811
00:22:47,240 –> 00:22:49,080
Task Esla if needed.

812
00:22:49,080 –> 00:22:51,480
Inputs incident number or account name.

813
00:22:51,480 –> 00:22:55,160
If multiple results return top three and ask the user to choose.

814
00:22:55,160 –> 00:22:55,960
Outputs.

815
00:22:55,960 –> 00:22:56,920
Number priority.

816
00:22:56,920 –> 00:22:58,920
State SLS status updated on.

817
00:22:58,920 –> 00:22:59,480
Link.

818
00:22:59,480 –> 00:23:01,800
Add HTTP action for your internal API.

819
00:23:01,800 –> 00:23:03,480
Azure AD-auth.

820
00:23:03,480 –> 00:23:06,120
Post/Sash limits query.

821
00:23:06,120 –> 00:23:06,920
Inputs.

822
00:23:06,920 –> 00:23:07,960
Product ID.

823
00:23:07,960 –> 00:23:09,160
Customatier.

824
00:23:09,160 –> 00:23:10,760
Validate against an allow list.

825
00:23:10,760 –> 00:23:12,120
You maintain in config.

826
00:23:12,120 –> 00:23:12,920
Outputs.

827
00:23:12,920 –> 00:23:14,840
Max users rate limit per minute.

828
00:23:14,840 –> 00:23:16,200
Notes policy link.

829
00:23:16,200 –> 00:23:19,720
Usage product limits entitlements compliance caps.

830
00:23:19,720 –> 00:23:20,840
Orchestration.

831
00:23:20,840 –> 00:23:22,280
In tool priority rules.

832
00:23:22,280 –> 00:23:24,200
Renewal sales force.

833
00:23:24,200 –> 00:23:25,320
Ticket priority.

834
00:23:25,320 –> 00:23:26,280
SLA.

835
00:23:26,280 –> 00:23:27,320
Service now.

836
00:23:27,320 –> 00:23:28,680
Limit entitlement.

837
00:23:28,680 –> 00:23:30,120
Internal API.

838
00:23:30,120 –> 00:23:31,320
Set a confidence floor.

839
00:23:31,320 –> 00:23:32,920
If required fields are null.

840
00:23:32,920 –> 00:23:35,240
Ask a clarifying question before answering.

841
00:23:35,240 –> 00:23:36,600
Test in the right pane.

842
00:23:36,600 –> 00:23:39,000
Ask Agme Renewal risk and open incidents.

843
00:23:39,000 –> 00:23:40,600
Pro limits for product X.

844
00:23:40,600 –> 00:23:43,160
Verify activity map shows sales force first.

845
00:23:43,160 –> 00:23:45,720
Then service now with disambiguation if needed.

846
00:23:45,720 –> 00:23:46,920
Then internal API.

847
00:23:46,920 –> 00:23:48,280
Check citations and links.

848
00:23:48,280 –> 00:23:50,200
Fix any tool conditions that miss fire.

849
00:23:50,200 –> 00:23:50,840
Safety.

850
00:23:50,840 –> 00:23:52,040
Enable audit logging.

851
00:23:52,040 –> 00:23:54,280
Confirm connectors aren’t blocked by DLP.

852
00:23:54,280 –> 00:23:55,480
Share to a pilot group.

853
00:23:55,480 –> 00:23:56,640
Seed suggested prompts.

854
00:23:56,640 –> 00:23:57,720
Let them break it.

855
00:23:57,720 –> 00:23:58,600
Patch instructions.

856
00:23:58,600 –> 00:23:59,440
Titanscopes.

857
00:23:59,440 –> 00:24:00,120
Publish.

858
00:24:00,120 –> 00:24:01,120
Decision framework.

859
00:24:01,120 –> 00:24:03,320
Went to choose Studio versus Toolkit.

860
00:24:03,320 –> 00:24:06,400
Choose Studio when you need speed, governance, and citations.

861
00:24:06,400 –> 00:24:09,200
Read only enterprise answers with simple actions.

862
00:24:09,200 –> 00:24:10,520
Makers can maintain it.

863
00:24:10,520 –> 00:24:12,000
Admins can approve it.

864
00:24:12,000 –> 00:24:14,960
Choose Toolkit when you need strict input validation.

865
00:24:14,960 –> 00:24:17,000
Custom schemas or complex logic.

866
00:24:17,000 –> 00:24:19,440
Conditional access aware policy in code.

867
00:24:19,440 –> 00:24:20,400
Low latency.

868
00:24:20,400 –> 00:24:21,840
High control integrations.

869
00:24:21,840 –> 00:24:22,760
Custom caching.

870
00:24:22,760 –> 00:24:23,600
Retrieves.

871
00:24:23,600 –> 00:24:24,640
Hybrid wins when.

872
00:24:24,640 –> 00:24:25,840
Studio orchestrates.

873
00:24:25,840 –> 00:24:27,240
Toolkit tools execute.

874
00:24:27,240 –> 00:24:29,440
You want fast iteration with pro-grade enforcement.

875
00:24:29,440 –> 00:24:32,160
You must prove auditability and minimize blast radius.

876
00:24:32,160 –> 00:24:34,120
If ambiguity default to Studio first

877
00:24:34,120 –> 00:24:37,800
at Toolkit where Studio bends, the truth copilot doesn’t know.

878
00:24:37,800 –> 00:24:41,000
It fetches through paths you approve with identities you govern

879
00:24:41,000 –> 00:24:42,200
or it stays blind.

880
00:24:42,200 –> 00:24:43,000
Build the eyes.

881
00:24:43,000 –> 00:24:43,920
Own the site.

882
00:24:43,920 –> 00:24:46,400
If you want the ProDev plugin we used in the demo,

883
00:24:46,400 –> 00:24:49,880
watch the next video for the team’s Toolkit build and deployment checklist.

884
00:24:49,880 –> 00:24:51,640
Subscribe for the enterprise patterns,

885
00:24:51,640 –> 00:24:53,720
red team prompts, and governance blueprints.





Source link

0 Votes: 0 Upvotes, 0 Downvotes (0 Points)

Leave a reply

Join Us
  • X Network2.1K
  • LinkedIn3.8k
  • Bluesky0.5K
Support The Site
Events
December 2025
MTWTFSS
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     
« Nov   Jan »
Follow
Search
Popular Now
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...

Discover more from 365 Community Online

Subscribe now to keep reading and get access to the full archive.

Continue reading