Zoho Learn

Zoho Learn is an all-in-one knowledge management and learning management system.

Data integration: Skyvia supports importing data to and from Zoho Learn, exporting Zoho Learn data to CSV files, replicating Zoho Learn data to relational databases, and synchronizing Zoho Learn data with other cloud apps and relational databases.

Backup: Skyvia Backup does not support Zoho Learn.

Query: Skyvia Query supports Zoho Learn.

Establishing Connection

To create a connection with Zoho Learn, sign in with Zoho, select the data center, and hub URL.

Creating Connection

To connect to Zoho Learn, perform the following steps: zoho-learn-connection

  1. Click Sign in with Zoho Learn.
  2. Enter your credentials.
  3. Allow Skyvia to access your Zoho data.

zoho-learn-permissions

Additional Connection Parameters

Account TimeZone

Specify the time zone that matches the timezone set in your Zoho Learn account.

Connector Specifics

Date Format Specifics

Zoho Learn API may return dates in the timezone set for Zoho Learn account and in specific format as strings: If a date belongs to current year, it contains day and time and doesn't contain year. If a date belongs to a year different from current, it contains day and year and doesn't contain time.

For user convenience Skyvia converts the Zoho Learn dates to UTC an processes Zoho Learn dates in the following way: If a date contains a month, day, and time but no year, Skyvia assigns the current year for such dates automatically. If a date is specified without a time, Skyvia sets time to 00:00:00 automatically.

This logic works for the following objects and fields:

Object Field
CourseData CreatedTime, UserRating_Time
CourseRatings Time
CourseResources UploadedTime
Courses CreatedTime, ExpiryTime
_CustomPortalCourses, CustomPortalManuals, LessonDiscussions, QuestionBanks _ CreatedTime
CustomPortalPendingInvites, CustomPortalSignups ReinvitedTime

Object Peculiarities

ReportCourses

When you query this object, it displays the lessons' statistics by default.

To query the members' statistics, use the IsMemberView = true filter. If you use the IsMemberView = false filter, the LessonStats field returns lessons' statistics.

The LessonStats and MemberStats objects have a complex structure. They contain nested arrays in JSON format. For user convenience, Skyvia represents them as separate read-only ReportCoursesLessonStats and ReportCoursesMemberStats objects in our connector.

CourseRatings

To be able to insert, update, or delete data in the CourseRatings object, make sure you have the corresponding rights. Otherwise, you get the access error.

Nested Objects

Some fields in Zoho Learn store complex structured data in JSON format. You can use our Nested Objects mapping feature in the Import integrations to insert or update the nested values in such fields. Select the Separate Tables for the Unwind Nested Objects option when using the new replication runtime to replicate the nested data into separate tables.

Object Field
CourseMembers UserDetails
LessonDiscussions Replies
ReportCourses LessonStats, MemberStats

Incremental Replication and Synchronization

Skyvia supports Replication with Incremental Updates for the ChapterLessons, CourseLessons, CourseData, CourseRatings, CourseResources, Courses, CustomPortalCourses, CustomPortalManuals, LessonDiscussions, QuestionBanks objects.

Skyvia tracks only new records for the CourseData, CourseResources, Courses, CustomPortalCourses, CustomPortalManuals, QuestionBanks objects.

Since Zoho Learn doesn't return seconds for string date values, the Incremental Updates and Synchronization behave the following way. Skyvia won't detect the records created/updated the same minute as the last replication/synchronization run.

Skyvia supports Synchronization for the QuestionBanks, CourseRatings, and ChapterLessons objects.

DML Operations Support

Operation Object
INSERT, UPDATE, DELETE CourseRatings, QuestionBanks
INSERT Courses

Stored Procedures

Skyvia represents part of the supported Zoho Learn features as stored procedures. You can call a stored procedure, for example, as a text of the command in the ExecuteCommand action in a Target component of a Data Flow or in Query.

EnrollInCourse

Use the following command to allow a learner to enroll themselves in public or on-request courses.

call EnrollInCourse(:CourseId)

AddMembersToCourse

The following command adds members to a course.

call AddMembersToCourse(:CourseId, :UserIds, :Role)

PARAMETER NAME DESCRIPTION
CourseId The ID of the course to add members to
UserIds Array of Zuids to add to the course
Role Optional parameter. If omitted, the default role is MEMBER.
Possible values:
MEMBER - Add user as Learner,
ADMIN - Add user as ADMIN,
INSTRUCTOR - Add user as Instructor,
CONTRIBUTOR - Add user as contributor

ChangeCourseMemberRole

The command below changes the role of a member in a course.

call ChangeCourseMemberRole(:CourseId, :Zuid, :Role)

PARAMETER NAME DESCRIPTION
CourseId The ID of the course to change roles in
Zuid The ID of the user in Zoho to change role for
Role Possible values:
MEMBER - Add user as Learner,
ADMIN - Add user as ADMIN,
INSTRUCTOR - Add user as Instructor,
CONTRIBUTOR - Add user as contributor

CompleteCourse

Use the following command to complete a course.

call CompleteCourse(:CourseId)

CompleteLesson

Use the following command to complete a lesson.

call CompleteLesson(:CourseId, :LessonId)

MarkLearnerAsComplete

Use the following command to mark a learner as complete.є

call MarkLearnerAsComplete(:CourseId, :MemberId)

MarkLearnerAsInProgress

Use the following command to mark a learner as in progress.

call MarkLearnerAsInProgress(:CourseId, :MemberId)

MarkLearnerAsFailed

Use the following command to mark a learner as failed.

call MarkLearnerAsFailed(:CourseId, :MemberId)

InviteCustomPortalUsers

Use the following command to invite users to a custom portal.

call InviteCustomPortalUsers(:CustomPortalId, :Userlist, :MailContent)

PARAMETER NAME DESCRIPTION
CustomPortalId Custom portal unique ID
Userlist An array of users to be invited to the custom portal. Only 100 emails can be invited at a time.
Value example:
[{"emailId": "user1@zylker.com","fname":"user","lname":"one"},{"emailId": "user2@zylker.com","fname":"user","lname":"two"},{"emailId": "user3@zylker.com","fname":"user","lname":"three"}]
MailContent Optional. Mail content to be sent. If the mailContent parameter value is empty, the default mail content will be sent.

ResendInviteInCustomPortal

Use the following command to resend the invite in a custom portal.

call ResendInviteInCustomPortal(:CustomPortalId, :Zuid)

DeleteInviteInCustomPortal

Use the following command to delete a pending invite in a custom portal.

call DeleteInviteInCustomPortal(:CustomPortalId, :Zuid)

ActivateCustomPortalUser

Use the following command to activate a custom portal user.

call ActivateCustomPortalUser(:CustomPortalId, :Zuid)

DisableCustomPortalUser

Use the following command to disable a custom portal user.

call DisableCustomPortalUser(:CustomPortalId, :Zuid)

DeleteCustomPortalUser

Use the following command to delete a custom portal user.

call DeleteCustomPortalUser(:CustomPortalId, :Zuid)

ShareManualToCustomPortal

Use the following command to share a manual to a custom portal.

call ShareManualToCustomPortal(:CustomPortalId, :ManualIds)

PARAMETER NAME DESCRIPTION
CustomPortalId Custom portal unique ID
ManualIds List of comma-separated manual IDs

RemoveManualFromCustomPortal

Use the following command to remove a manual from a custom portal.

call RemoveManualFromCustomPortal(:CustomPortalId, :RemovedManualIds)

PARAMETER NAME DESCRIPTION
CustomPortalId Custom portal unique ID
RemovedManualIds List of comma-separated manual IDs to be removed

AddUserToCustomPortalCourse

The following command adds users to a course in a custom portal.

call AddUserToCustomPortalCourse(:CustomPortalId, :CourseId, :AddedZuids, :EnrollmentType, :IsPublic)

PARAMETER NAME DESCRIPTION
CustomPortalId Custom portal unique ID
CourseId The unique identifier of the course
AddedZuids Optional. Comma-separated zuids of custom portal users to be added to this course
EnrollmentType Optional. PRIVATE - Only zuids added to the course can take this course.
PUBLIC - Anyone from the custom portal can enroll in this course.
ON_REQUEST - Anyone from the custom portal can view the preview of this course, but requires an admin's approval to enroll in the course
IsPublic Boolean. In case of a public custom portal, set this value to true to show a public preview of this course

RemoveUserFromCustomPortalCourse

The following command removes users from a course in a custom portal.

call RemoveUserFromCustomPortalCourse(:CustomPortalId, :CourseId, :RemovedZuids, :ResetStats)

PARAMETER NAME DESCRIPTION
CustomPortalId Custom portal unique ID
CourseId The unique identifier of the course
RemovedZuids Optional. Comma-separated zuids of custom portal users to be removed from this course
EnrollmentType Optional. PRIVATE - Only zuids added to the course can take this course.
PUBLIC - Anyone from the custom portal can enroll in this course.
ON_REQUEST - Anyone from the custom portal can view the preview of this course but requires admin's approval to enroll to the course
ResetStats Boolean. If sent true, learner statistics of the removedZuids will be removed.

AddUserToManualInCustomPortal

Use the following command to add users to a manual in a custom portal.

call AddUserToManualInCustomPortal(:CustomPortalId, :ManualId, :AddedZuids, :EnrollmentType, :IsPublic)

PARAMETER NAME DESCRIPTION
CustomPortalId Custom portal unique ID
ManualId The unique identifier of the manual
AddedZuids Optional. Comma-separated zuids of custom portal users to be added to this manual
EnrollmentType Optional. PRIVATE - Only zuids added to the manual can view this manual.
PUBLIC - Anyone from this custom portal can view to this manual.
IsPublic Boolean. In case of a public custom portal, set this value to true to enable public view of this manual

RemoveUserFromManualInCustomPortal

Use the following command to remove users from a manual in a custom portal.

call RemoveUserFromManualInCustomPortal(:CustomPortalId, :ManualId, :RemovedZuids)

PARAMETER NAME DESCRIPTION
CustomPortalId Custom portal unique ID
ManualId The unique identifier of the manual
RemovedZuids Comma-separated zuids of custom portal users to be removed from this manual

ApproveSignupRequestInCustomPortal

Use the following command to approve a signup request in a custom portal.

call ApproveSignupRequestInCustomPortal(:CustomPortalId, :Zuid)

RejectSignupRequestInCustomPortal

Use the following command to reject signup requests in the custom portal.

call RejectSignupRequestInCustomPortal(:CustomPortalId, :Zuid)

EnableCustomPortal

Use the following command to enable the custom portal.

call EnableCustomPortal(:CustomPortalId)

DisableCustomPortal

Use the following command to disable the custom portal.

call DisableCustomPortal(:CustomPortalId)

Supported Actions

Skyvia supports all the common actions and custom actions for Zoho Learn.