ANNAI magazine
Table of content

jGrants is a Drupal-based web application developed by ANNAI in collaboration with the Ministry of Economy, Trade and Industry of Japan (METI) and was launched in December 2019. jGrants is designed to help businesses apply for grants, as well as to allow streamlined management of applications and project information for secretariats. (Ministry of Economy, Trade and Industry). 

Functional overview of jGrants

jGrants is designed around the Act on Appropriate Budget Execution for Subsidies etc. ("The Act") while embodying common use-cases and processes of thousands of secretariats.

Below are the main features of jGrants:

  • Publication of grants information
  • Accepting grants applications from businesses
  • Assignment of personnel responsible for evaluation and notification for each grant
  • Various procedures for accepted projects (submission of reports, reimbursement of expenses, etc.)
  • Dispatches automatic notifications as applications and procedures occur
  • Temporarily saving the form even if required fields are empty
  • Integration with gBizID (, an external authentication service provided by the Japanese government

Since the procedures for the subsidised projects shall be in compliance with The Act, as well as other relevant laws and regulations, jGrants is designed to guide the secretariats and the businesses applying for subsidies to follow the correct procedures. This greatly reduces the need for manual re-verification of the submitted information.

Descriptions of the features which we developed to realise these features on Drupal 8 are as below:

Access control for business and secretariat users

Grants are managed by various organisations - not only by ministries, but also by subcontractors who often outsource the management task to other organisations. Users of secretariats, however, should only have access to the applications and businesses which they are in charge of.

On the businesses' side, they are allowed to apply for grants individually, as well as in partnership with other companies. Their access also needs to be limited to what is relevant to them.

In order to handle such complex access control requirements, we have combined the core's roles and access control as well as contrib modules and custom code. We have also added various sophisticated access control e.g. access to some fields' are granted only when an application is promoted to a certain state.

The custom workflow

As mentioned earlier, jGrants guides users to follow the procedures defined by The Act. This feature is implemented by customising the core's Workflow module and consists of a set of defined workflows and bundles for respective procedures.

Various stages are defined by The Act for both application and project respectively, which are defined as states on jGrants. For example, states such as 'submitted' or 'under review' are available for subsidy application entities and general procedures entities. Similarly, for project entities, states such as 'application submitted', 'project in progress' and 'project completed' are available.

The traditional approval flow in the Japanese business scene (e.g. approved by the chief -> the manager -> the head of the department) has also been replicated on jGrants.

businessmen approving an application with their hanko stamps

When designing the workflow, maintaining a certain level of flexibility was considered crucial. This is because each secretariat has its own set of rules in addition to what is defined by The Act. For example, while one subsidy requires only one approver, another subsidy requires 8.

Also, in some cases, a group of approvers manage all subsidies while only some of the members are allowed to communicate with certain businesses.

Because of the countless patterns of operation/management practices at thousands of secretariats, we have built a flexible workflow feature that caters for most (if not all) of their scenarios.

Temp save feature

The application form has a large number of fields and Drupal, by default, doesn't allow users to save a form even as a draft until all required fields are filled, which caused great inconveniences to some applicants.

There is (as always) a module on that allows you to temporarily save forms that are not complete. Unfortunately, the module uses the Web Storage and this causes security concerns for jGrants' use-case. Applicants sometimes visit a secretariat to fill the application form with a shared PC; therefore storing sensitive information on the Web Storage is not secure. Also, some businesses may wish to only prepare a draft at a secretariat and submit the form when they are back at their office, and the Web Storage-based solution cannot support this scenario. We have, therefore developed our own temp save feature.

Integration with GBizID

GbizID ( is a third-party authentication service provided by the Japanese government, which allows users to log in to various government services with a pair of ID and password. Once registered with GBizID, businesses can log in to jGrants through GBizID. Their basic information (such as business name, address etc.) is also imported from GBizID, so they do not need to enter their details every time they fill a new grants application form.


jGrants is a Drupal 8-based web application for grants management/application system for the Ministry of Economy, Technology and Industry of Japan (METI), which is built with various contributed modules and customisations to handle complex access management, workflow and audit trails that are necessary for the business system. By deriving the common denominator of thousands of unique processes, ANNAI has built a simple yet highly versatile system. Since the launch in December 2019, jGrants has proven its reliability by accepting and managing a large number of applications and projects without any major issues.

Mori Sugimotoの写真

The author of this post: Mori Sugimoto

Since 2006, Mori has been involved in a number of large-scale Drupal projects in the US/Europe as a developer, architect and consultant.

He has been actively contributing to the Drupal community by:
- Translating Drupal core into Japanese
- Organising Drupal events and meetups
- Volunteering and presenting at Drupalcons
- Acting as a coordinator of the Drupal Security Team

Mori is based in Utrecht, the Netherlands.