Hi @sendres,
I appreciate your response and I can understand your workflow. The issue is that my tool is complicated by the fact that users have to link up particular Canvas assignments to particular assignments on my own tool (the tool has a course/assignment structure).
And, if it helps others, I did find a solution. Basically I used variable solution in the LTI launch (https://canvas.instructure.com/doc/api/file.tools_variable_substitutions.html) to include the Canvas assignment id. Then, when a user creates an assignment on my side, I use the API to create an assignment on Canvas, saving the Canvas assignment id to my database. Next when the launch happens, I use:
$launch->get_launch_data()['https://purl.imsglobal.org/spec/lti/claim/custom']
to get the Canvas assignment id which is passed in by Canvas. Finally, knowing the Canvas assignment id, I can look up the assignment id for my tool and launch the appropriate page. The benefit of this approach is that the user can just create assignments using my tool and things will automatically be set up on Canvas for them.