Unconfirmed Student Email Addresses with SIS Integration

Jump to solution
Community Participant
We create our Canvas accounts from an API integration with our SIS and we are seeing a large number of accounts that show emails as unconfirmed.
We have been in touch with both our SIS (Anthology Student) who built the integration and Canvas.
Canvas says:
...if you are adding a new email via API, you can use the skip_confirmation option to have the email confirmed automatically...But for an email that was already added, there is not an option to confirm via API
The SIS folks who made our integration say:
This functionality will work only for new user account.
If we try to update the existing user, then we will get below error message and integration will fail to update the user. "user not authorized to perform that action"
Currently, this feature is not functioning in canvas LMS framework.

So, we have two issues
1. Is there a way to fix (confirm) emails administratively?
2. Sounds like the SIS people are saying they can't turn on that feature b/c it will then not allow user accounts to be updated in the future (e.g., we update the account if there's a name change).
Wondering if anyone else has encountered these issues--I've searched and not found anything yet. The only recourse we have now is to ask students to confirm themselves, but that involves a few steps and I"m not very optimistic about that. 
Thank you!
Labels (2)
1 Solution
Community Explorer

Hello Nathan,

Since the accounts are already created with the communication_channel[skip_confirmation] parameter as False, the users must have already received an email with an URL to confirm the communication channel.

We can either wait for the user to confirm, or create a new already confirmed communication channel for the affected users using Canvas API.

Here is a logic for creating a confirmed comm channel for already created user accounts:

For every user:

  1. Get the user communication channel using the List user communication channels resource
  2. If workflow_state is unconfirmed, delete the comm channel using Delete a communication channel resource. Else, go to step 1.
  3. Create a new communication channel using the Create a communication channel resource, with the following parameters:
    communication_channel[address] = 'user@email.com'
    communication_channel[type] = 'email'
    skip_confirmation = True​

Hope this helps!

View solution in original post