A computer-implemented method of managing computer macros, comprising: identifying a macro stored at a hosted computer system, the macro assigned to a user account on the hosted computer system; executing the macro by traversing lines of commands in the macro; identifying one of a plurality of different services that are responsive to macros by converting a command in the macro from a format associated with a macro language in which the macro is authored, to a command format associated with the identified one of the plurality of different services; characterized in that the method comprises: determining whether a call to the one of the plurality of services from the user corresponding to the executing macro exceeds a predetermined level, wherein the determined level is defined by a number of executions of the macro on behalf of a particular user account in a time period; preventing execution of the macro if the call exceeds the predetermined level by one or more quota enforcing layers, said quota enforcing layers limiting the number of executions of macros on behalf of the particular user account in a time period; and providing, if the call does not exceed the predetermined level, information received from the one of a plurality of different services to the macro or an application (116, 118) corresponding to the macro, after converting the information into a format usable by the macro or the application (116, 118) corresponding to the macro. identifying a macro stored at a hosted computer system, the macro assigned to a user account on the hosted computer system; executing the macro by traversing lines of commands in the macro; identifying one of a plurality of different services that are responsive to macros by converting a command in the macro from a format associated with a macro language in which the macro is authored, to a command format associated with the identified one of the plurality of different services; characterized in that the method comprises: determining whether a call to the one of the plurality of services from the user corresponding to the executing macro exceeds a predetermined level, wherein the determined level is defined by a number of executions of the macro on behalf of a particular user account in a time period; preventing execution of the macro if the call exceeds the predetermined level by one or more quota enforcing layers, said quota enforcing layers limiting the number of executions of macros on behalf of the particular user account in a time period; and providing, if the call does not exceed the predetermined level, information received from the one of a plurality of different services to the macro or an application (116, 118) corresponding to the macro, after converting the information into a format usable by the macro or the application (116, 118) corresponding to the macro. determining whether a call to the one of the plurality of services from the user corresponding to the executing macro exceeds a predetermined level, wherein the determined level is defined by a number of executions of the macro on behalf of a particular user account in a time period; preventing execution of the macro if the call exceeds the predetermined level by one or more quota enforcing layers, said quota enforcing layers limiting the number of executions of macros on behalf of the particular user account in a time period; and providing, if the call does not exceed the predetermined level, information received from the one of a plurality of different services to the macro or an application (116, 118) corresponding to the macro, after converting the information into a format usable by the macro or the application (116, 118) corresponding to the macro.