Using Simple Shared Actions to Simplify Your Captivate Projects

Adobe Captivate projects can quickly grow complex with duplicate actions being applied across the project. Instead of building multiple Advanced Actions to perform the same functions on different slides, buttons, and objects you can use Shared Actions to reduce simplify your project and save time building the project. In this video, I demonstrate a simple Shared Action to take the place of the Advanced Actions controlling the toggles in my sample project.

The post Using Simple Shared Actions to Simplify Your Captivate Projects appeared first on eLearning.

Micro-Navigation with Shared Action (Step-By-Step)


After the introduction to Micro-Navigation I explained how to use it for forcing the first view of a slide, and for playing an audio file on first visit. When looking at the resulting advanced actions they are pretty similar in both posts. Moreover you probably will want to use the action on multiple slides in the course, and maybe also in future courses. That sounds like a perfect scenario for conversion of the action to a Shared action. I have been blogging already several times about Shared actions. In the present article I try to explain how to reflect on the use of parameters. Static objects need to be parameters as are states and groups, I label them as ‘compulsory’. But Variables and Literals are ‘candidate parameters’, a well-founded choice for change them in parameters,  can save you lot of time later on. Consider it a good practice example.


When comparing the two advanced actions created in the mentioned articles, there is a small difference: the first decision (which is a standard action) has one command extra in the second advanced action (for Audio). For the ForceAct, the number of seconds to be jumped over is directly entered in the Expression command, for the SkipSlideAudio, Assign is used to store the number of seconds in the user variable v_skip. Both versions work well, but personally for a shared action I prefer the one with the extra Assign command.

What are the parameters for the shared action?

For the first decision (labeled Always in both advanced actions):

  •  ‘Assign v_skip with 16.5‘: this first command has two candidate parameters, the variable v_skip and the literal 16.5. The variable can be reused on each slide where the action is needed. Both advanced actions used the same variable in the interactive movie. There is no need to promote that variable to a parameter in that case. However the literal ‘16.5’  is the number of seconds to be jumped, will have a unique value on each slide, it has to be promoted to a parameter. Parameter 1 = literal. You have to be careful with literals: double-check that the same numerical value is not used anywhere else in the action. In this example there is a second literal ‘1’ in the second decision, Increment command. It has to be different from the first parameter, which is the case.
  • Expression v_skip = v_skip * cpInfoFPS‘: the user variable v_skip is no parameter (see above). The system variable cpInfoFPS has never to be replaced by another variable, will be no parameter neither.
  • Increment v_visit by 1‘: the user variable v_visit has to be unique for each slide, as you can see in the action SkipSlideAufio where another variable has been used. This means that we have to promote that variable to a parameter, parameter 2. The literal ‘1’ however will always be the same, no need to turn it into a parameter. We already double-checked that the literal in the first decision was different from 1.

The second decision is conditional:

  • IF v_visit is greater than 1‘: has two candidate parameters as well. We already indicated that v_visit is a parameter. The literal in this case will always be 1, will never be changed and need not to be a parameter.
  • Expression cpCmndGotoFrameAnd Resume = cpInfoCurrentFrame + v_skip‘: has 3 candidate parameters. Above was already decided that v_skip can be reused on each slide, and the system variables will always be the same.

Shared action Skip_Frames

When you choose to save any of the advanced actions used to skip frames as a Shared Action you’ll see that all possible parameters are marked as OK. The reason is that there is no compulsory parameter in this action:

As a result of the analysis above, we need to mark to items as parameters: the tracking variable and the number of seconds to be jumped on later visits. The result will look like this. It is important to give a good description not only for the shared action but also for the marked parameters:

You can assign the shared action to all the slides where you want to jump frames on a later visit. You only have to define a tracking variable and estimate the number of seconds to be jumped. Here is one example setup for the slide where audio had to be jumped on later visits:

You can check in the Library for the Usage of the Shared action, much easier than for advanced actions.

Using Skip_Frames in future projects

Want to reuse this action in other projects? The workflow is described in an older blog post. Short summary:

  1. Use File, Import, External Library and point to the project where you created the shared action.
  2. Library will be opened in a floating panel. Look for ‘Skip_Frames’ in the Shared Actions subfolder and drag it to the Library of the new project.
  3. Because v_skip is not a parameter in the shared action, it will be created automatically, including the description.
  4. You have to create a tracking variable for each slide to which you want to assign the shared action, and define the duration in seconds to be skipped. Ready!

The post Micro-Navigation with Shared Action (Step-By-Step) appeared first on eLearning.

Intro to Shared Actions

Interactive presentation (webinar)

Last week I presented a webinar ‘Dare to Share: Power of Shared Actions’ for a pretty big crowd.  As usual I presented using a Captivate presentation, since I don’t feel it to be appropriate to use Powerpoint when Captivate has so much more features. One of the advantages is that I am able to convert that presentation in an interactive movie. If you did miss the webinar and did not register to have access to the recorded versions, you can watch this movie using this link:

Shared Actions

It is Rescalable HTML5 output, you can also watch it on mobile devices, but only in landscape mode.

Content of Presentation

Five topics in this presentation:

  1. Importing and using a Shared action
  2. Creating a Shared action (two workflows)
  3. Parameter types
  4. Using a Shared action as a Template
  5. How to choose between Shared and Advanced action

The presentation itself is using a lot of shared actions as you’ll be able to see because I included these screenshots under the ‘Information’ button:

  • To create a dashboard
  • To deactivate an interactive object after all has been viewed
  • To create toggle buttons
  • To skip audio when a slide is revisited
  • In a Drag&Drop slide to show Feedback for each drag action.
  • ….

A lot more is possible with Shared actions to replace Advanced actions and make it easier to transfer the scripts to new projects for reusing. A typical example are custom question slides of all types (not only MCQ). To attribute all fhe functionality of the default question slides to those custom question slides, it takes a lot of work creating the actions. By reflecting on the setup you can create shared actions that can be easily reused not only in the present project but in all your future projects.


Some of the mentioned examples will be published in a later blog post. If you want to learn more about Shared actions, which are a lot more flexible that the older advanced actions, send me a note. I am preparing several booklets. One will be  about  Shared Actions. Those booklets can be used as cookbooks, with recipes but also offer in-depth information about the topci.

The post Intro to Shared Actions appeared first on eLearning.

[Webinar] Dare to Share: Power of Shared Actions

If you have seen some of my use cases or tutorials, you are aware of the fact that I am a big fan of Shared and Advanced actions. Advanced actions are part of Captivate since version 4 and made it possible to extend Captivate’s functionality in many ways.  Their release was the reason I started blogging to show how easy it is to  create engaging courses without the need of learning a programming language. You just use the point-and-click interface of those actions, which are converted to a programming language on runtime.

With Captivate 7 Shared actions were included, a more flexible alternative for Advanced actions. The main goal of those shared actions is reusability!  That reusability is due to the presence of parameters, which can be filled in on assigning a new instance of the shared action to an event. Shared actions will be listed up in the Library, the same way as other assets. As I explained in the blog post Library? Which Library you can open the library of any project in a new project, and drag the assets in the library of that new project. That is also the case for shared actions. Captivate 8 extended the functionality of shared actions by adding the possibility to define variables and literals as parameters.

Shared actions can also be used as templates for new advanced (or shared) actions, a feature that is not very well known but very useful as well.

If you want to see shared actions ‘in action’, you can register for this webinar, organized by the eLearning Brothers on Thursday, 15th of March,  4pm CET (8am PT). You are welcome to get lot of tips from a user addicted to shared actions. Registering is possible using this link:

Dare to Share

Be sure: you’ll walk away with many creative ideas!  As a plus: you’ll be working in the brand new Advanced Actions dialog box of Captivate 2017.

Shared Actions in Drag&Drop


Shared actions were a new feature in Captivate 7 and were improved in Captivate 8. Nevertheless I rarely see examples of shared actions, and there is also lot of misunderstanding.  Some users think they can only be reused in other projects. I did see experts claiming that they are totally useless, that it is much easier to duplicate advanced actions. I don’t agree with that opinion, about 90% of all the project I have developed do include shared actions. They are especially useful for responsive projects as well. In a recent article you can find links to tutorials about shared actions.

A problem that still remains is that you cannot edit an existing shared action, had hoped that would have been solved in 9 in a recent version but it didn’t happen. The reason is probably that since they are not much used, this improvement doesn’t get on the priority list. If you want to learn more about how to create shared actions and see some examples, have a look at this recent article in which I summarized several older posts. This post is a showcase, where I’ll try to explain when to use a shared action, and when you cannot use them. The origin of this showcase is due to this question in the forums. The answer I gave there is working, but has a serious drawback, I will explain both this first simple answer, followed by a second version that will work in all situations. I hope you learn from that workflow: test out all possible situations, even though they seem to be improbable. As a trainer/coach never underestimate how trainees will explore courses.


User did look for a solution to apply to this use case:

  • Drag&Drop slide with two drag sources and two drop targets
  • Each drag target should accept only one drag source
  • Depending on the sequence of the dragged items, one out of two texts should appear.
  • Learner can switch the drag sources
  • Auto submit for the answer.
  • Slide needs a reset button

Example movie

It is not possible to embed an iFrame here, you will have to use this  link to see the two proposed solutions.

You can test the problem with the first solution as well. Everything works fine if you switch only once, like first dragging the First text to the Top target, than drag the Second text to the Top target. However if you switch a third time, First text to the Top target, you’ll see that the functionality is lost. This will not happen with the second solution

Setup Drag&Drop slide

The setup is the same for both solutions. Drag sources are shapes and labeled SS_DragOne and SS_DragTwo. The shapes acting as drop targets are labeled SS_DropTop and SS_DropBottom. The feedback will appear in another shape SS_Feedback, which has 3 states: Normal, OneTop (first scenario with SS_DragOne in SS_DropTop) and TwoTop (second scenario (SS_DragTwo in SS_DropTop).

Since Auto Submit is turned on in the Actions tab of the Drag&Drop panel, I dragged the Submit button out of the way to the scratch area.

That means that both possible answers have to be defined as Correct answers. This can be done with the button ‘Correct Answers’ on the Options tab of the Drag&Drop panel.

Each drop target should accept only one drag source, but the learner can switch them if wanted, as long as no correct answer has been defined. For that reason editing the dialog box ‘Accepted Resources’ is necessary, because the default setup is that each Drop target accepts all drag sources. This dialog box can be opened from the Format tab of the Drag&Drop panel, when a drop target is selected. It has to be repeated for both targets. Rest of the setup like snapping behavior is not important for the rest of the workflow, do what you like.

First solution

This solution is using two variables: v_first and v_second. They are related to the first scenario (SS_DragOne in SS_DropTop and SS_DragTwo in SS_DropBottom) and the second reverse scenario. Default value of the variables is 0.

I used the same shared action for all object actions, for both targets. It is pretty simple, conditional with one decision. It has three parameters:

  1. First parameter is the variable associated with the scenario, v_first or v_second.
  2. The multistate feedback object is the second parameter
  3. The state to be shown, which fits the scenario is the third parameter.

This was the original idea:

  • When the first drag action occurs, it fits into either scenario 1 or scenario 2; the appropriate variable is set to 1.
  • If the drag source is replaced on that same target nothing happens.
  • When the second drop target is filled with the other drag source, it has to be in the same scenario. Checking if that associated variable has a value=1, means that both targets are filled, and the feedback is shown, depending on the scenario variable.

What is the problem with this action? It works fine until the user changes the object twice on the first target: in that case the feedback will be shown to early. That was the reason for the second solution which does avoid this problem.

Second solution

Besides the two scenario variables, a third variable to track the number of drag actions was created: v_counter. It started also with a default value of 0. The shared action now has 3 decisions as you can see in this Preview:

The first decision ‘Always‘ is a mimicked standard action. The increment command for both v_counter and the associated scenario variable (v_first or v_second, depending on the object action) will always be done.

The second decision ‘Complete‘ checks if both targets are filled, which is the case when both v_counter and the associated scenario variable have the value = 2. In that case the correct feedback is shown (similar to first solution).

The third decision ‘Incomplete‘ is the one that solves the problem with solution 2. If there has been 2 drag actions (v_counter is equal to 2) but the associated variable for the active object action is still set to 1, that means that the user has switched the drag sources on one target two times. In that case the variable for the other scenario (which probably has already a variable different from 0) is reset to 0.

It is not necessary to define v_counter as parameter, since it will be used as counter whatever the scenario. This action needs 4 parameters, because both v_first and v_second are used in the action; whereas in solution 1 only one of them was used..


This is not the default Reset from Drag&Drop, because it will not reset the variables nor the state of the feedback container. I used the usual workaround (micronavigation as explained in ‘Replay Slide‘ is not possible yet due to a HTML5 bug in CPwhere the On Enter action is not executed) to reset the variables and that feedback container. Two dummy slides with a duration of 0,1sec are inserted: one before each D&D slide. The reset button triggers the command ‘Go to Previous Slide’, thus forcing the playhead to re-enter the D&D slide.

The On Enter action ‘EnterDD‘ is also a shared action and looks like this:

I used that action for both D&D slides, even though v_counter is not used in the the first solution.

I hear you! Why a shared action, you only need it twice, and the only edit to make to a duplicate advanced action is the label of the feedback container. If you were one of my college students, you would know that ‘Weymeis never acts without a reason….’. I will try to explain why I preferred a shared action with two parameters, instead of two advanced actions.

When you import this shared action in a new project by dragging it to the Library from this project opened as External Library (see Libraries) the variables v_counter, v_first and v_second are created automatically in that new project, with their definition and default value. That is a time saver, something to take into consideration when creating shared actions. This happens only for variables that are not defined as parameters.


Do you want to try out those actions? Send me a mail ( and tell me if you use shared actions, or will use them in the future?  As a 2018 offerI will send you a project that you can use as external library with the two shared actions (EnterDD and DragSequence) described in this blog post, and instructions how to use them.

Managing Advanced Actions

When managing Advanced Actions in Adobe Captivate, I recommend that you open the Advanced Actions window from the drop down menu rather than from the Actions tab in the Properties of a slide or object. This way you reduce the risk of accidentally selecting a new Advanced Action in place of what was there from the start. Click on the Project dropdown menu and select Advanced Actions. Alternatively, you can press SHIFT+F9 (which doesn’t always work for me) to open the Advanced Actions window. Once open you can scroll through all the Advanced Actions in your project using the Existing Actions selection drop-down shown below.

2018-01-27 1-26-32 PM

You should become familiar with the toolbar controls just above this drop-down selection box.

toolbar1The first icon is Preview Action. This makes Advanced Actions easier to read and share with others. Normally items like your Else statements are collapsed so using Preview Action will show the entire script in one list. If you want help troubleshooting Advanced Actions on the forum, using the script as it’s written here is helpful to the other users assisting you. Here is an example Conditional Action I have for one of my projects:

2018-01-27 1-20-57 PM

toolbar2The next icon is the plus symbol and allows you to start making a new blank Advanced Action.

toolbar3After that is the import icon which allows you to import Shared Actions. A well created Shared Action is completely reusable and can be shared across more than one project. It also can be used multiple times within the same project just by changing the parameters that reference various objects and variables used throughout your project. Here is a video tutorial I did some time ago on Shared Actions if you would like to learn more:

toolbar4The next icon is to export Shared Actions and will be greyed out if you don’t presently have any Shared Actions in your project. Captivate Shared Actions can be saved as a CPAA file format but they can reside as part of your Captivate Library if you don’t need them to be stored outside of a single project file.

toolbar5This is the delete action icon and its function is self explanatory. I use this when I’m feeling overwhelmed by all the extraneous Advanced Actions I might end up with in an eLearning project. This is mostly due to starting an Advanced Actions and then abandoning it and rewriting it and so on. The good news is that if you try to delete an Advanced Action that is in use somewhere in your project you will get a warning like the following:

2018-01-27 1-46-05 PM

Just be careful when deleting these advanced actions that you don’t delete something you actually need.

toolbar6Lastly is my favourite icon from this section and that’s the Duplicate Advanced Action icon. As the name suggests this icon will make a copy of the currently selected Advanced Action. You will find that there are many sets of advanced actions that are reused. The modern solution for cases where you need a similar version of an advanced action duplicated is to simply use Shared Actions. Duplicating actions and making a few small changes to them was the way things were done before Shared Actions were introduced in Adobe Captivate version 7. Also some people are just more comfortable making a new action from the old action. The duplicate action will be named “Duplicate_Of_” followed by the original name and then a number to make sure that duplicated actions are named something already in use.

Review before Retake?


This question recently appeared on the forum (thread):

“I’d like to customize the results page at the end of a quiz to display the numbers 1 to 20 (representing the 20 questions in the quiz) and indicate if each question was answered correctly or incorrectly.”

Although I posted an answer, the user never returned to check it. Since I have spent some time to work out that solution, I also discovered that it could be very useful in two situations that are often mentioned as failing in the normal Captivate design:

  • To show the user an oveview of answers on a test with Knowledge Check slides: which anwsers were  correct/incorrect? If you are not sure about the differences between KC slides and normal quiz slides, have a look at this article.
  • To create a Review slide, where the learner would see the same information for normal quiz slides. Captivate has a great Review feature for quiz slides (not for KC slides) but it has some shortcomings. It will not only show the answers by the learner but also the correct answers. Moreover, clicking the Review button will cancel all remaining attempts on Quiz level for apparent reasons. With the solution I propose the user would not see the correct answers, only which questions were answered correctly or incorrectly, and the Retake attempts would still be available.

The work flow is based on a couple of easy shared actions, use of multistate objects (for the feedback checkmarks) and some advanced actions.

Example movie

Watch this movie  which I cannot embed in this location. You can use any device to open this link (it is a rescalable, non-responsive HTML5 project).

You will first see a test with two Knowledge Check slides, followed by a ‘Review’ slide. You will be able to retake this test, or to continue.

Second part is a realy quiz, with 5 question slides. Question slides are followed by a Review slide. In Quiz Preferences I provided 3 attempts. When the attempts are exhausted or you succeeded passing the test, the Next button (was formerly a Retake button) will take you to the official Score slide.

Set up

Checkmark – multistate object

The checkmarks, both on the Review slide for the KC question and for the real quiz, are shapes with 3 custom states:

  1. Normal state: shape is invisible because Alpha for Fill and Stroke for Width are both set to 0.
  2. Correct state: shape is filled with a PNG representing a green tick symbol. This can of course be all you want: text, text + image, text + image + audio. I kept it simple.
  3. Wrong state: shape is filled with a PNG that is the Cross symbol.

Here is a screenshot of the Object styles for the checkmark:

The checkmarks are labeled: Check_KC1 – Check_KC2 for the KC slides, and Check_1, Check_2…. Check_5 for the Quiz slides. The numbers make it easier to select them by filtering in the Parameters dialog box, because they are used in the shared actions.

Retake button Quiz Review – multistate object

That button on the Review slide for the Quiz, is used to start a new attempt because the user will not see the Score slide. I had to reproduce he functionality of that Score slide, where the Retake button automatically disappears in two situations: either the learner has passed the quiz, or the Quiz attempts are exhausted. I solved that by adding a custom state to the Retake button, where the label changes to ‘Next’. To have a non-confusing Rollover and Down state, which would be valid for both the Retake and Next button, I used the text ‘>>’. This is the Object state panel of this button, type Transparent button like the Quiz buttons and buttons on the Score slide: The advanced action (see below) EnterReview will take care of switchnng beteen the Normal and Passed state.

The Review slide for the KC questions doesn’t need that type of button. It has two buttons: Retake for those who want to retry the KC test (answers are always reset for KC slides when leaving them) and a Continue button.

KC/Question Slides – variable v_KC

I changed the default setup to only one attempt for the KC-slides (default =  Infinite attempts). That change made the Last Attempt event availalbe. Contrary to Quiz slides the results of the KC-slides are not stored in exposed system variable. I wanted to show a ‘trophy’ on the Review slide to learners who correctly anwered all KC-questions. To track the correct answers, I created a user variable, labeled v_KC  which starts with a default value of 0 and is incremented for each correct answer. For the same reason, the shared action triggered by the Success event is different from the one used for normal quiz slides. If you import the shared action to another project, the variable will automatically be created.

Quiz slides kept the default setup: only one attempt allowed.

Events for Actions

On KC-slides Success event (Quiz Properties) is used for Shared Action ‘CorrectAnswerKC

On KC-slides Last Attempt  event (Quiz Properties) is used for Shared Action ‘WrongAnswer

ReviewKC slide On Enter event triggers Advanced Action ‘EnterReviewKC

Continue button Success event (on ReviewKC slide) is set to simple action ‘Go to Next Slide’

Retake button Success event (on ReviewKC slide) is set to simple action ‘Jump to slide  KC1’ (first KC slide)

On Question slides Success event (Quiz Properties) is used for Shared Action ‘CorrectAnswer

On Question slides Last Attempt  event (Quiz Properties) is used for Shared Action ‘WrongAnswer

Review slide On Enter event triggers Advanced Action ‘EnterReview

Retake button Success event (on Review slide) is set to simple action ‘Go to Next Slide’

Score Slide On Enter event triggers Advanced Action ‘EnterScore

Shared actions

WrongAnswer triggered by Last Attempt event (KC slides and Quiz slides)

It is a very simple action with two commands: changing the state of the associated checkmark to the Wrong state and going to the next slide. There are two parameters: the checkmark (which is different for each slides) and the state. Although the state always has the same name (Wrong), there is no way to turn it into a ‘fixed’ parameter (one of my feature requesnts). Here is the action with filled in parameters

I like the way it is possible to track shared actions in the Library, look at the Usage panel for this action/ You see that this shared action is used both for the two KC slides and for the 5 Quiz slides.

CorrectAnswer triggered by Success event Quiz slides

It is a similar action, now showing the state Correct in the first command:

CorrectAnswerKC triggered by Success event KC slides

I used the CorrectAnswer from Quiz slides as template to add an extra command that will increment the variable v_KC.

Advanced Actions

EnterReviewKC triggered by the On Enter event of the ReviewKC slide

This is a simple conditional action, to decide if the trophy will show up or not.

EnterReview triggered by the On Enter event of the Review slide

This conditional action has two decisions. The first decision will change the state of the Retake button to have a Next button if the quiz has been passed or the Quiz attempts are exhausted. The second decision is about showing an image if the quiz has been passed. It also shows or hides the text mentioning the number of the present attempt.

EnterScore triggered by the On Enter event of the Score slide

This is the ‘trick’. To have the functionality of a Retake button on the previous slide, which is the Review slide, the playhead visits to the score slide, but will immediately jump back to the first question slide. All quizzing system variables are reset in that case. Only when all attempts are exhausted or the learner passed the quiz, will the score slide become visible to the learner.

More is possible…

Several enhancements are possible based on this approach:

  • You can have multiple review slides, if there is not enough space on one slide
  • You can have a review side after a chapter which has some question slides or KC slides; in that case you’ll have to tweak the advanced actions; if you want to track different bunches of KC slides you can either reuse the variable v_KC or use several variables. In the last scenario you’ll have to turn the variable in the shared action into a real parameter.
  • I used a simple checkmark to indicate correct/wrong answers. It is not limited to that: in custom states you can also have audio, text etc…

More ideas? Suggestions?

[WEBINAR] PART 2 – How to turn a linear PowerPoint Presentation into an immersive, interactive Adobe Captivate project.

From PowerPoint to eLearning – It’s your turn to be a hero!

Date: Tuesday, October 31st (Australia/New Zealand/APAC)

Time: 11 am (Australian EDT) / 1 pm (NZ)

During our most recent webinar, we shared some insights on how to turn a linear PowerPoint presentation into an interactive Captivate project, with the great mystery of the ‘green tick’ revealed!

If you’re interested in revisiting that webinar – here’s a link to the recording.

Let’s pick up where we left off.

In our next webinar on Tuesday 31st October, we’re going to build upon these concepts and show you how to:

  • Use Shared Actions for accelerated deployment of section completion actions
  • Incorporate questions into each section
  • Utilise Adobe Captivate frames to navigate straight to a specific part of the slide
  • Display a final call to action on the menu slide to bypass the completed actions and finish the module

Using Adobe Captivate’s built-in quiz functionality combined with a splash of Advanced Actions, you can take your Imported PowerPoints to a whole new level ready to deploy to your Learning Management System or web server.


Why I Love Shared Actions since over 4 years!


Shared actions were a new feature in Captivate 7 several years ago. They were improved with Captivate 8.  I never understood why almost no one talks about them, even self-labeled experts seem never to use them. This is a real pity because their power is much underestimated. In most projects I open an external library (have a look at Internal and External Libraries) which has frequently used shared actions. It saves me a lot of time in each project. I will try to summarize in this blog post the results of my almost 5 years of experience with Shared actions. As usual my goal is to get more CP-users to understand when and how to use them.   More users could mean getting enhancement feature requests on the priority list of the developers )

Example movie (CP2017)

Please watch this movie, one of the examples I will explain at the Adobe Learning Summit, session 202 ‘Make the most of Captivate’s Timeline for Advanced Workflows’. You will see in this movie how one shared action can be used both to skip slide audio on revisiting a slide, or to force to view the entire slide on first visit. This is a use within one project. That action certainly has its place in a common external Library. To have an explanation of the shared action, you’ll have to be patient, because I want to give ‘First View’ to the participants of the session in Las Vegas, 24 October.

Published Tutorials Shared Actions

These posts were published 4 years ago (yes, have over 4 years experience with SA :-)). If you are on CP2017, the screenshots may be a little bit different because of the change to the Advanced Actions dialog box (see AA Dialog in 2017). However the work flow and terminology for Shared actions is still the same.

Use cases

Following on those tutorials I explained a bunch of use cases where shared actions were used. Examples are the way to explore new features, and you’ll find a list with links here:

1 (shared) Action  = 5 Toggle Buttons

This blog post has a unique shared action that you’ll be ablefor several toggle button in all your projects. The post was written  for Captivate 8. If you are using Fluid Boxes work flow (responsive projects) in CP2017, you can have the toggle buttons in a fluid box on master slides, not timed for the rest of the project (unless  in a static fluid box).

Dashboard, using Shared Actions

The advantage of shared actions when setting up a menu or dashboard

Drag&Drop Tips

When using object actions for Drag&Drop slides, shared actions can be an excellent choice over duplicate advanced actions

Custom Hotspot Questions

Using shared actions to create a custom controlled hotspot question which has lot of advantages over the default type of Hotspot question.

Forcing First View

This is an older version of the Example movie for which I posted a link above. It did already use Shared actions.

Matchstick Game

Games often need repetitive actions and that means that shared actons are the way to go.

Playing with Captivate 9

Another version of a dashboard created with shared actions, to celebrate the arrival of CP9.

Myths and tips

Strange myths exist about Shared actions. Lot of users believe they are only useful  between projects, not in the same  project. Personally, with the exception of the external library mentioned at the beginning, I always give priority on shared actions within one project over advanced actions if appropriate. If an action is used at least twice in a project, and it is possible to use a shared action, I will not use duplicate advanced actions.
Half-myth is that you cannot edit a shared action. That is partially true. You cannot edit a shared action which is already assigned to events and have it changed automatically. However you can use the original shared action as template to create a new shared action. You will have to assign it to all events after completing the new shared action. At that moment you will appreciate the fact that the shared action appears in the Library and has a Usage button  –  like any other asset. Contrary to advanced actions you can even reuse the same name for a shared action, provided the older action is no longer present in the file. That is one of those annoying things, that you can never reuse a name for an advanced action, even if it has been deleted. Keeping track of Usage of advanced actions is also very cumbersome.
Shared actions cannot replace advanced actions in all circumstances, and they need a different set of mind when preparing the actions. You have to be very careful with the candidate parameters: variables and literals.  I could tell a lot about spectacular results when replacing advanced by shared actions that are set up in an efficient way: courses that couldn’t be published anymore because of the number of variables and advanced actions that now run very smoothly, decrease of file size and loading time when using shared instead of advanced actions. Once lot of Captivate users gave me the title ‘Queen of Advanced Actions’. At this moment I feel more like the defender of Shared Actions, not the first ignored and underestimated stepchild of Captivate.  Too often I hear comments like: ‘I cannot see any advantage in using shared over advanced actions’.  Sorry, but that means you never tried them out. This article proves that I have explored them…. and they are on my top feature list of Adobe Captivate.


I would love to organize an online training with focus on use of shared actions. If you would consider such a course a valuable add-on to your skillset, please send me a message using