Elements are re-usable components that can be referenced from flows. There are some good reasons to abstract detail away from the flows, and we will discuss that later, but for now, here’s an introduction to Primary’s Elements and what they do.

There are five Elements

Interfaces – these are probably the most familiar Element. They describe information exchanges between users and your app. Typically these are graphical user interfaces, but sometimes they can be other mechanisms, e.g. automated telephone calls, or data interfaces.

Users – these are people (or sometimes other automated systems) who interact directly with your app.

Rules – these are descriptions of the logic of the app, all the if-then-else sort of stuff, and the algorithmic stuff, e.g. “Don’t set an alarm on Sunday.”

Forms – these are the collection mechanisms for putting information into the app. Normally they are just what they sound like. A form with fields to fill out.

Data – these are representations of the ‘things’ the app knows about. They are not a technical concept, but rather real world objects and information, like a ‘Ticket’ or a ‘Booking’.

Why Use Elements?

There are two main reasons to use elements.

  1. Many times an Element will occur in multiple flows, so abstracting the information into one place allows you to avoid repetition, and the inevitable ambiguity that arises from multiple versions of the same thing.
  2. Your Flows read more clearly if the detail is moved to the side. In the end the ‘devil is in the detail’ and so the detail must be explored and captured, but before that happens you must be able to communicate the intention of your Flows. If they are all cluttered up with in-line detail, this retards comprehension.

There are some other nice reasons like managing your modeling progress and weeding out redundant information, but we’ll go into this later in the in-depth guides.