Skip to main content

New Certifications - Preparing for release update - Major blocker found

  • October 7, 2026
  • 9 replies
  • 113 views

lrnlab
Hero III
Forum|alt.badge.img+10

Not sure if everyone has come across this yet...while testing and planning to see what we can do while we wait for some kind of migration plan (and dates, etc.) we found that there is no way to use the same course in both the old and new certifications. This is a hard stop. In the new certs, if you try to add a course that is already tied to an old cert, you get a big error message and log. However if you do the reverse and try to add that is tied to a new cert into an old cert, the course simply does not appear in your search results; no errors, no messaging, etc.

Another issue is with LPs. Some of our old certs are set-up to LPs only. I thought we could at least get those manually created in the new Cert app but the courses contained in the LP are also blocked from being added to a new cert.

So ew are essentially stuck. Only way we can create new certs for the same courses while we wait for a migration plan would be to duplicate all courses in our LPs and any already tied to old certs.

This is a huge issue - Is Docebo aware of this? Have the migration plans been finalized? Can the proposed migration date be advanced?

9 replies

Forum|alt.badge.img
  • Helper I
  • October 7, 2026

Yep. I noted this in the general release announcement. Just one of many reasons we can’t touch the new method. And like you say, no migration plan.


Forum|alt.badge.img+4
  • Influencer I
  • October 7, 2026

I noticed this too.

I have a day planned in a few weeks to move everything over at once. I found that even though you have to remove the course from the legacy cert, when you add it to the new cert it respects completion dates of the courses and automatically awards those enrolled based on course completion. Works fine for straightforward certs. Might need to test more for more complex certs. 

My steps were: create new cert, remove course from old cert, add course to new cert, enroll population in new cert and it works. I would definitely suggest having a backup report to correct for errors but this has worked when I test it. 

one issue I have is that notifications are not set up yet for the new certs. I believe these are being added or updated at the end of this month. I’m hedging my bets that is true. This is a bigger issue to me and I really hope this is added on schedule. 


I noticed this too.

I have a day planned in a few weeks to move everything over at once. I found that even though you have to remove the course from the legacy cert, when you add it to the new cert it respects completion dates of the courses and automatically awards those enrolled based on course completion. Works fine for straightforward certs. Might need to test more for more complex certs. 

My steps were: create new cert, remove course from old cert, add course to new cert, enroll population in new cert and it works. I would definitely suggest having a backup report to correct for errors but this has worked when I test it. 

one issue I have is that notifications are not set up yet for the new certs. I believe these are being added or updated at the end of this month. I’m hedging my bets that is true. This is a bigger issue to me and I really hope this is added on schedule. 

 

Hi ​@ChrisBurton , thanks for this!

Can you confirm, does it show the existing certification dates, or apply the date the users are enrolled on the new certification?


Ahebert
Contributor III
Forum|alt.badge.img+1
  • Contributor III
  • October 8, 2026

We noticed this too while testing. 

 

My question for the admins is mostly - when the migration option is available to us, will it maintain dates for renewal for all users or will it reset? Because if it resets everything, we might as well just transfer everyone over now by creating a new certification. If the official migration options that will be provided in the future offer the ability to maintain when people needed to renew certain things, then that is worth waiting for. 


DrKRR
Novice III
Forum|alt.badge.img
  • Novice III
  • October 8, 2026

I noticed this too.

I have a day planned in a few weeks to move everything over at once. I found that even though you have to remove the course from the legacy cert, when you add it to the new cert it respects completion dates of the courses and automatically awards those enrolled based on course completion. Works fine for straightforward certs. Might need to test more for more complex certs. 

My steps were: create new cert, remove course from old cert, add course to new cert, enroll population in new cert and it works. I would definitely suggest having a backup report to correct for errors but this has worked when I test it. 

one issue I have is that notifications are not set up yet for the new certs. I believe these are being added or updated at the end of this month. I’m hedging my bets that is true. This is a bigger issue to me and I really hope this is added on schedule. 

Thanks, but how much of a lift is this? As in how much manual entry versus automation? We have several huge projects going on right now that are taking priority, and I am concerned about having time to make these adjustments. 


  • Contributor I
  • October 8, 2026

Agreed, this is a hard stop for us as well. We need to be able to migrate all users to the new cert experience without impacting or resetting existing certifications, expiration dates OR duplicating badges that were issued via our Credly integration. Our program is live with over 1000+ participants, we cannot impact our current program during the migration or inadvertently impact costs with other vendors because a certification was accidently reissued from Docebo. 


lrnlab
Hero III
Forum|alt.badge.img+10
  • Author
  • Hero III
  • October 8, 2026

Thx ​@ChrisBurton I will start testing with the process you provided and see if that can work. Thank you.


Forum|alt.badge.img+4
  • Influencer I
  • October 8, 2026

​@joanne.gerard  this is a screenshot of my test example. What I did was set up a bogus Certification, tied it to a course and then enrolled these users to test. I even re-tested it today to make sure I wasn’t crazy. It brings in the course completion date as the award date and also measures it against the certification rules. If the course was completed during a window that would make their certification expired, it shows as expired as soon as they are enrolled in the certification.

 

​@DrKRR  I spent a few hours yesterday creating the new Certs to match our legacy certs. I used APIs to do it, so it wasn’t so bad. Without that, it would just take as much time as you would take to sit down and create them all manually with all of the rules and such. The actual movement of people should be pretty quick. You would have to remove the course from the Legacy cert, add the course to the new cert, then enroll the users in the new cert. This can be done via CSV so as long as you have a complete list when you do it, then the only thing left to do is validate that everyone’s records match. I will be running this test with one of our real certifications with several users within the next week to see how it responds but initial tests with small groups bear this out.

 

To go the API creation route, I had to use two: Create a new Learning Plan and Update a Learning Plan. I will paste my API calls below to help any others who want to do this quickly. I went through several iterations and errors before I got these right:

WARNING: I found that the UPDATE API call would nullify fields that were not present, hence the repeated fields in that call. Definitely test this before using.

 

=== CREATE API CALL === 
{
  "title": "This is a Certification Title",
  "description": "Description goes here",
  "short_description": "Short description",
  "code": "code",
  "lang_code": "english",
  "lang_behaviour": "use_courses_lang",
  "thumbnail_id": 676,
  "show_in_catalog": true,
  "additional_fields": [
    {
      "id": 1,
      "value": "19"
    },
    {
      "id": 2,
      "value": "Chris Burton"
    },
    {
      "id": 3,
      "value": "2026-11-01"
    }
  ],
  "type": 2
}


=== 1. BCM Incident Manager | FULL UPDATE AFTER CREATE ===

Learning Plan ID needed from previous call


{
  "title": "This is a Certification Title",
  "description": "Description goes here",
  "short_description": "Shot description",
  "code": "code",
  "lang_code": "english",
  "lang_behaviour": "use_courses_lang",
  "thumbnail_id": 676,   
  "show_in_catalog": true,
  "additional_fields": [
    {
      "id": 1,
      "value": "19"
    },
    {
      "id": 2,
      "value": "Chris Burton"
    },
    {
      "id": 3,
      "value": "2026-11-01"
    }
  ],
  "type": 2,
  "certification_config": {
    "expiration": {
      "type": "RELATIVE",       <=== does not match exactly to the API documentation. This works, what is listed in the API documentation did not work because it did not call for “type”
      "relative": {
        "duration": 365,       <=== one year from award
        "unit": "DAY",
        "snap_to_end": "MONTH"    <===extend to end of the month of expiry
      }
    },
    "recert": {
      "type": "WINDOW",     <=== sets a window where people can begin re-certification
      "window": {
        "start": {
          "duration": 60,      <=== window opens 60 days prior to expiration
          "unit": "DAY"
        },
        "end": {
          "type": "AT_EXPIRATION"   <=== creates a hard stop at the date of expiration, no re-cert after that. can change to allow re-certs after expiration date.
        }
      }
    }
  }
}


DrKRR
Novice III
Forum|alt.badge.img
  • Novice III
  • October 8, 2026

Thank you!