Help with writing Ecto.Multi function

Looks like you got it but since I typed this all out I’m gonna post anyway :sweat_smile: 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()