あげる, くれる, and もらう
The same gift exchange can be described with different verbs depending on viewpoint. Identify the giver, the recipient, and the speaker separately.
The direction of あげる and くれる
私は友達に本をあげました。 means 'I gave my friend a book.' The giver is the subject, and に marks the recipient. In this basic example, the gift moves from the speaker to the friend.
友達が私に本をくれました。 means 'My friend gave me a book.' くれる presents giving toward the speaker or someone viewed as close to them. Its direction differs from あげる even though both can translate as 'give.'
Use もらう from the recipient's side
私は友達に本をもらいました。 means 'I received a book from my friend.' The recipient is now the subject. に marked the recipient in the あげる example, but here it marks the giver.
You can also mark the source with から: 友達から本をもらいました. Do not always identify the person before に as the recipient; check whether the verb describes giving or receiving.
Favors and social relationships
友達が手伝ってくれました。 means 'My friend helped me,' presenting the action as a favor toward the speaker. 友達に手伝ってもらいました describes the help from the speaker's viewpoint as the person receiving the help.
With someone senior, automatically adding てあげる to say you did them a favor can sound self-congratulatory. In requests and thanks, consider the relationship and wording; the direction of giving alone does not determine an appropriate tone.
Check: Who received the book in 私は友達に本をもらいました。?
Show the answer and why
The speaker, 私, received it. With もらう, the subject is the recipient, and 友達に identifies the friend who gave the book.

