1) In our internal emails, we reference {!Case.Link}. Will that automatically update to the My Domain? Will old links properly redirect to the My Domain URL, like in this? My Domain Gotchas?
Links sent in future emails after My Domain is enabled will use the new My Domain. Old emails and links will work properly in most cases. The exception is if you enable "force login from my domain," in which case users will need to be logged in before they click on the link. If they are not logged in before using the link, they will be unable to log in using the standard URL, and would have to log in afterwards. It's advisable that you leave this feature unchecked unless you're specifically trying to force users to use SSO.
2) Does anyone know if the JIRA integration module will continue to work?
Yes, the module should continue to work. Note that I use "should" instead of "will," because there's no way we can know without testing it. You should contact the vendor that provides the module to make sure.
3) Will this affect things making API calls?
The LoginResult will have a new API endpoint that callers must use. Developers that are in the habit of following directions will write applications that seamlessly pick up on the endpoint change. Developers that somehow "calculate" the correct endpoint to use will have their applications break. I've seen this just once with an internal app at a company I used to work for. As far as I'm aware, no publicly available applications have a problem with My Domain.
Other Information
Make sure you review your org to make sure nobody's using hardcoded URLs. They may not work correctly after deployment, and even if they do, there's an extra redirect which will cause a minor delay in loading time. It's advisable to fix any hardcoded links in email templates, custom buttons or links, Visualforce pages, etc, that explicitly name a salesforce server URL instead of using either relative links, or the appropriate link-generation methods available (e.g. {!Case.Link}
is okay, but https://login.salesforce.com/{!Case.Id}
is not).
{!Case.Link}
will continue to function as normal.