---
name: iblai-connect-salesforce-education-cloud
description: "Read and write Salesforce Education Cloud data through the Salesforce REST API (sObjects, SOQL), Education Cloud Business APIs (Connect REST) and expose it to an ibl.ai agent as an MCP tool. Use when the user asks an agent to work with Salesforce Education Cloud data, or to set up a Salesforce Education Cloud MCP connection on ibl.ai."
metadata:
  kind: guide
---

# Salesforce Education Cloud connector for AI agents

> A starting point maintained on ibl.ai at https://ibl.ai/developer/connectors/salesforce-education-cloud — not part of the iblai/vibe repository. Checked against Salesforce's documentation on October 20, 2026; test it against your own Salesforce Education Cloud setup before you rely on it.

Salesforce Education Cloud adds education objects and apps to a Salesforce org for recruitment, admissions, academic operations and student success. Records include learner profiles, applications, academic terms, term enrollments and attendance.

## Auth & conventions

- **API:** Salesforce REST API (sObjects, SOQL), Education Cloud Business APIs (Connect REST) (REST). Education Cloud standard objects (e.g. LearnerProfile, AcademicTermEnrollment, CourseOfferingParticipant, ApplicationReview) use the standard REST and SOAP APIs and SOQL. Business APIs under /connect/education handle course offerings, learnings and holds.
- **Base URL:** https://{yourInstance}.salesforce.com/services/data/v68.0/
- **Access:** Issued by your administrator. An org admin creates an External Client App (new Connected Apps are restricted from Spring '26) with OAuth enabled and grants the integration user object and field permissions. Education Cloud must be enabled in the org.
- **Auth:** OAuth 2.0 (External Client App or Connected App). REST API calls send an OAuth 2.0 access token as a Bearer token, obtained through one of Salesforce's OAuth flows for the External Client App or Connected App. Results follow the user's object, field and sharing access.
- **Limits:** Query results come in batches (default and maximum 2,000 records, minimum 200); follow nextRecordsUrl for the next batch. Org-wide API request limits apply and return REQUEST_LIMIT_EXCEEDED when exceeded.
- Keep Salesforce Education Cloud credentials in environment variables or the ibl.ai credential store. Never print a token in chat and never commit one to a file.
- Destructive or outward-facing calls are marked **Confirm with the user first** — do.

## Reads

- **Learner profiles** — LearnerProfile (API v63.0+) holds a learner's profile information; query it with SOQL.
- **Academic term enrollments** — AcademicTermEnrollment (API v57.0+): a student's enrollment in a term, with academic standing and cumulative GPA.
- **Course offering participants** — CourseOfferingParticipant and related grade and result objects for a learner in a course offering.
- **Applications and reviews** — ApplicationDecision, ApplicationReview and ApplicationTimeline records for admissions.
- **Attendance** — AttendanceEntry and AttendanceRecording objects for class attendance.
- **Learnings** — GET /connect/education/academic-operations/learnings/{learningId} returns details of a course or program.

## Writes

- **Course offerings** — POST /connect/education/academic-operations/course-offering creates course offerings; a sub-resource adds the course schedule.
- **Holds** — POST /connect/education/holds places holds on learners, which can block their actions. **Confirm with the user first.**
- **Create or update records** — sObject POST and PATCH on Education Cloud and standard objects, within the user's permissions.
- **Delete records** — sObject DELETE on records the user can delete. **Confirm with the user first.**

## Expose it to an ibl.ai agent (MCP)

Salesforce publishes an official MCP server, Salesforce Hosted MCP Servers (https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/hosted-mcp-servers-overview.html). Register it below as-is, or host your own server that wraps the calls in this skill.

First install the ibl.ai platform skills and connect your organization (writes `IBLAI_ORG`, `IBLAI_USERNAME` and `IBLAI_API_KEY` to `.env`):

```bash
npx skills add iblai/vibe --all
# then, in your coding agent:
/iblai-api-login
```

Every call below sends `Authorization: Api-Token $IBLAI_API_KEY`.

1. **Register the server** — `POST https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/mcp-servers/` with `name`, `url`, `transport` (`sse` | `websocket` | `streamable_http`) and `auth_type` (`none` | `token` | `oauth2`). Capture the returned `id`.
   - For an API key or service credential use `auth_type=token` with `auth_scope=platform` for one key across the organization, or scope it to a single agent for one key per agent.
2. **Create the connection** — `POST https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/mcp-server-connections/` with `server`, `scope` (`platform` | `mentor` | `user`), `auth_type`, and either `credentials` + `authorization_scheme` or a `connected_service` id for OAuth. Credentials are masked on read; never send a masked value back.
3. **Enable it on the agent** — `GET https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/mentors/{agent_id}/settings/`, add `mcp-tool` to `tool_slugs` and the server id to `mcp_servers`, then `PATCH` the full lists back. They are replaced, not merged.

Full reference: https://ibl.ai/developer/platform/mcp/mcp-connections and the `/iblai-api-agent-mcp` skill.

## Example prompts

- "List students on academic probation this term with their cumulative GPA"
- "Show attendance for the Tuesday section of BIO 101 this week"
- "Which applications are awaiting a review decision for the Fall 2027 MBA?"
- "Place a registration hold on this learner after I confirm"

## Guardrails

- Applicant data and, for enrolled students, FERPA education records such as GPA, enrollments and attendance. Limit the integration user's object and field access to what a task needs.
- Request the narrowest Salesforce Education Cloud scopes or role the task needs, and prefer a read-only credential for agents that only answer questions.
- Return the fields the user asked for, not whole records; do not paste personal data into chat that the user did not request.
- Before any write, show the user exactly what will change and wait for a yes.
- Respect the documented limits above: page through results and back off on rate-limit responses instead of retrying in a loop.

## References

- Education Cloud Developer Guide (PDF): https://resources.docs.salesforce.com/latest/latest/en-us/sfdc/pdf/edu_cloud_dev_guide.pdf
- REST API Developer Guide (PDF): https://resources.docs.salesforce.com/latest/latest/en-us/sfdc/pdf/api_rest.pdf
- Salesforce Hosted MCP Servers: https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/hosted-mcp-servers-overview.html
- Salesforce Hosted MCP Servers: https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/hosted-mcp-servers-overview.html
- This connector on ibl.ai: https://ibl.ai/developer/connectors/salesforce-education-cloud
- ibl.ai MCP server connections: https://ibl.ai/developer/platform/mcp/mcp-connections
