The workflow

Watch this workflow run through Kroy.

  1. The request.

    “Update CRM After Meeting”

  2. Who is asking.

    Kroy identifies the person in sales and Claude acting for them, within the delegation they gave it.

  3. Only what the task needs.

    Kroy retrieves the account, contacts and opportunities the user owns (Salesforce), meeting notes the user provides and the user’s calendar entry for the meeting (Outlook) from Salesforce and Outlook.

  4. Excluded by design.

    Accounts owned by other teams, Contract values on other opportunities and Salesforce credentials never reach Claude. That boundary is Kroy’s, not an instruction to the AI.

  5. The proposed action.

    Permitted: log an activity (salesforce.activity.create), create a follow-up task (salesforce.task.create) and propose an opportunity update (salesforce.opportunity.update).

  6. What Kroy refuses.

    Refused: delete records (salesforce.record.delete), change account owner and export contact lists.

  7. A person decides.

    A sales manager approves opportunity stage changes.

  8. State changes. Everything is recorded.

    The work is updated in Kroy, and every request — allowed or refused — is written to the audit trail.

Claude
Sales
Kroy
Salesforce
Outlook
Log an activity
Delete records
! Approval
AUDIT · STATE

Retrieved

  • The account, contacts and opportunities…
  • Meeting notes the user provides
  • The user’s calendar entry for the meeti…

Excluded

  • Accounts owned by other teams
  • Contract values on other opportunities
  • Salesforce credentials
Claude
Sales
Kroy
Salesforce
Outlook
Log an activity
Delete records
! Approval
AUDIT · STATE

Retrieved

  • The account, contacts and opportunities…
  • Meeting notes the user provides
  • The user’s calendar entry for the meeti…

Excluded

  • Accounts owned by other teams
  • Contract values on other opportunities
  • Salesforce credentials
Updating Salesforce after a client meeting with Claude: the workflow through Kroy. The request.. Who is asking.. Only what the task needs.. Excluded by design.. The proposed action.. What Kroy refuses.. A person decides.. State changes. Everything is recorded..

What the AI can and cannot do

Data accessed

  • The account, contacts and opportunities the user owns (Salesforce)
  • Meeting notes the user provides
  • The user’s calendar entry for the meeting (Outlook)

Data excluded

  • Accounts owned by other teams
  • Contract values on other opportunities
  • Salesforce credentials

Actions permitted

  • Log an activity (salesforce.activity.create)
  • Create a follow-up task (salesforce.task.create)
  • Propose an opportunity update (salesforce.opportunity.update)
  • Create an Outlook draft (outlook.draft.create)

Actions refused

  • Delete records (salesforce.record.delete)
  • Change account owner
  • Export contact lists

Human approval required

  • A sales manager approves opportunity stage changes

Business situation

An account manager at ABC Limited has just met a client. They agreed next steps, the client asked for a revised quote, and the opportunity looks ready to move forward. Updating Salesforce, setting reminders and writing the follow-up email usually waits until the end of the day, and sometimes does not happen.

Why existing tools alone are insufficient

An AI with a Salesforce connection can write the updates, but the connection’s scope is the same for every update — including deleting records, reassigning accounts and exporting the contact list. Stage changes feed the sales forecast, and the business wants a manager to confirm them.

Systems involved

  • Salesforce — accounts, contacts, opportunities, activities and tasks.
  • Outlook — the meeting entry and the follow-up email draft.

Kroy architecture

Claude connects to Kroy. Salesforce and Microsoft 365 are connected to Kroy by the business. The Update CRM After Meeting Skill may log activities, create tasks and draft email for accounts the user owns. Opportunity updates are permitted, but a stage change requires a sales manager’s approval. Deletion, reassignment and export are outside the Skill.

Workflow

  1. The account manager gives Claude their notes: “Log today’s meeting with XYZ Limited and set up the follow-ups.”
  2. Kroy checks the user, the agent, the user’s ownership of the XYZ Limited account and the Skill, and returns the account and its open opportunity.
  3. Claude logs the meeting with salesforce.activity.create and creates two tasks with salesforce.task.create.
  4. Claude requests salesforce.opportunity.update to move the stage to Proposal. Kroy holds the change and sends it to the sales manager for approval.
  5. The account manager asks: “Delete the old duplicate contact for their finance director.” Kroy refuses: salesforce.record.delete is not in the Skill.
  6. The account manager asks: “Export all XYZ Limited contacts to a spreadsheet.” Kroy refuses: export is not permitted.
  7. Claude drafts the follow-up email with outlook.draft.create. The sales manager approves the stage change.

Agent permissions

Claude acts under the account manager’s delegation, within accounts they own. It can log, create tasks, draft and propose. It cannot delete, reassign or export.

Human permissions

Account managers own their accounts. Sales managers approve stage changes. Salesforce administrators handle deletions and ownership changes.

State changes

  • An activity and two tasks are added to the XYZ Limited account.
  • The opportunity moves to Proposal after approval.
  • The follow-up draft is in the account manager’s Outlook.

Audit outcome

Kroy records each Salesforce change with the user, the agent and the Skill, plus the held stage change, its approval and the two refused requests.

Security considerations

  • Salesforce credentials stay in Kroy.
  • Export and deletion are outside the Skill, so they cannot be reached by rewording a prompt.
  • Kroy’s rules sit alongside Salesforce’s own sharing settings.

Setup requirements

  • Salesforce and Microsoft 365 connected to Kroy.
  • Claude connected to Kroy.
  • The Update CRM After Meeting Skill enabled, with approval for stage changes.

Try this with your own systems.

Try Kroy with Salesforce