Theoretically that is pretty much the way to do so. But if you want the sprite to perform the actions after the previous sprite finishes its action(s), then you need to tweak the solution. Example:
auto spriteMove = MoveTo::create(1.f, Vec2(x,y));
auto spriteScale = ScaleTo::create(1.f, 0.5f);
auto afterAction = CallFunc::create(....); //the closure or function you call after it finishes the above actions.
auto seq = Sequence::create(spriteMove, spriteScale, afterAction, nullptr);
Not saying that @slackmoehrle’s solution is wrong, but the method will result in the sprites performing their actions almost at the same time, since CallFunc is only called once and does not run for a certain interval.
Edited: Fixed a typo. (CallFunc was misspelled as CreateFunc just now :-p)