Send variables through arguments between files

I’ve recently started using robot and on the guide I followed he kept bringing the global variables through [Arguments] on test cases.
For example:

*** Test Case ***
CRMApp.Login With Valid Credentials ${EMAIL} ${PASSWORD}

and then on CRMApp.robot

*** Keywords ***
Login With Valid Credentials
[Arguments] ${Email} ${Password}

Signin.Login ${Email} ${Password}

My question is, how important is this? So far I haven’t included them and it has been working.
Can this cause problem later when I have multiple test cases?

Are you asking whether you should use global variables or whether you should pass them as parameters?

I guess?
On the guide I saw he defined global variables but would still pass them as arguments

Hi Filipe,

If the keyword has a [Arguments] you should supply the value regardless whether its a global or local variable.

As for when your creating keywords should you add [Arguments] or just use the global variable names? there’s no hard and fast rule here you can do both, however for keywords being used in generic or shared libraries it’s probably better to not rely on global variables.

Hope that helps,