Looks like you got it but since I typed this all out I’m gonna post anyway
I included the run function you can use if you want notifying the user to be part of the transaction.
def support_ticket_message_changeset(%SupportTicket{} = ticket, %User{} = user, attrs) do
%SupportTicketMessage{seen: false}
|> SupportTicketMessage.changeset(attrs)
|> Ecto.Changeset.put_assoc(:support_ticket, ticket)
|> Ecto.Changeset.put_assoc(:user, user)
end
Multi.new()
|> Multi.insert(:ticket, support_ticket_changeset(ticket, user, attrs))
|> Multi.run(:notification, fn _repo, %{ticket: ticket} ->
notify_user_about_ticket(ticket, user)
end)
|> Repo.transaction()






















