openedx / platform-roadmap

Tracking the maintenance, enhancement, and advancement of the Open edX project.
10 stars 0 forks source link

SalesForce Integration #267

Open Kelketek opened 1 year ago

Kelketek commented 1 year ago

At-A-Glance

Integrate with SalesForce, allowing enrollment and user management through its CRM capabilities.

More information

Product specs

Design files

Kanban board

Stakeholders

Primary Contributors

Community release milestones

How to contribute


1. Is there an existing issue for this?

2. What new feature or functionality would you like to request?

Integrate with SalesForce, allowing enrollment and user management through its CRM capabilities.

3. What product area does this feature affect?

LMS (not listed above)

4. Please describe the scope of the feature

Allow the management of users, enrollments, and permissions to be conducted via SalesForce.

5. Please describe why you see a need for this feature

Teams reselling content or managing large databases of client learners often use SalesForce to manage these relationships, which are more complex and are driven by activity outside of the platform. This feature allows the platform to reflect the reality of these relationships without requiring extended modeling for them in cases where it is not relevant to its function.

6. Please describe the potential impact and/or value of this feature

teams who are looking to manage large numbers of learners will not have to perform large and tedious manual import tasks, as the system will handle relevant API calls for them. Open edX will become more viable both in the continuing education and blended learning spaces, as SalesForce is used by both. This will also make it easier to develop dedicated SIS and HRIS integrations, as mentioned in this issue

7. Please provide 2-3 use cases and/or user stories in support of this feature

As an administrator, I want to enroll a set of learners via SalesForce so that I can manage online classes.

As an HR representative, I want to ensure team members are enrolled in continuing education courses so that their certifications are kept up to date.

8. Any additional information you'd like to provide?

This project is currently being worked on by the eSHE project/ASU. This ticket serves as a way to post progress.

github-actions[bot] commented 1 year ago

Thanks for your submission, @openedx/open-edx-project-managers will review shortly.

e0d commented 11 months ago

@Kelketek I believe we said at the last campus meeting that @viadanna know the most about the bridge code that was created for ASU. I believe this is implemented as AWS Lambda functions currently. I wanted to check in on whether that code can be shared with the community as SalesForce integration is a general need.

Kelketek commented 11 months ago

Hi @e0d ! @viadanna is off until this coming week but should be able to comment more about what he knows then.

My understanding is that he worked on extensions to the APIs used by those lambda functions, and that these extensions either have been or are in the process of being upstreamed.

ASU noted in the meeting that the lambda functions were separate from that and that they'd be willing to write up a guide on how they did it, but they did not give a timeline as to when. You'd need to follow up with Elizabeth there. I'm not sure if anyone at OpenCraft has access to the lambda functions and/or if we have the legal right to redistribute them-- I don't think we wrote them. But if we do and we have the freedom to do so, we'd love to share them. Paulo might know more.

viadanna commented 11 months ago

Hi @e0d @Kelketek

OpenCraft participation in the SalesForce integration is quite limited, we just implemented API endpoints to create users and modify roles. We have those implemented in a plugin but it might make sense to move them to the platform upstream. Otherwise, the integration bridge is making use of standard Open edX APIs:

POST /bulk_enroll/v1/bulk_enroll
POST clone-course.{domain}/api/v1/clone
GET /courses/v1/courses/{courseId}
GET /courses/v1/courses?username={username}
GET /courses/v1/courses?course_keys={keys}
GET /enrollment/v1/enrollments?username={username}
GET /grades/v1/courses/{courseId}
POST /oauth2/access_token
GET /user/v1/accounts?email={email}

We'll need to get in touch with the developers leading the effort on the ASU side to get more information about the bridge implementation.

e0d commented 11 months ago

@feanil FYI from API pov.

e0d commented 11 months ago

@viadanna Can you connect me with the lead dev? Assuming they are open to discuss.

viadanna commented 10 months ago

@e0d I've asked ASU for the contact and will let you know when they get back to me.

e0d commented 3 weeks ago

@viadanna we have some other community interest in moving this forward. If this isn't moving on the OC/ASU side, I'd like to discuss moving forward the integrating with different resourcing. Please let me know.

viadanna commented 3 weeks ago

Hi @e0d I'll get in touch with ASU and get back to you