System mapping

Looking to create engaging system maps with the power to change hearts and minds? You've come to the right place. Kumu enables you to build interactive maps with narratives, links, video and other background for each element, connection, and loop in the map.

Need more background about system mapping before you get started? Check out the Systems Practice course on +Acumen or download The Omidyar Group's Systems Practice workbook.

You can also check out some of the Kumu team's thoughts on the system mapping process in our two-part blog post, "Making Systems More Approachable".

Pick a template

Kumu comes with several pre-built templates that help you hit the ground running. When you're creating a new system map, you'll be prompted to pick one of these templates—we suggest you start with our system template.

Build your map by hand

Building your map by hand is a great choice for most system maps. If your map will have less than 50 elements, you can probably build it comfortably by hand. (If not, check out our guide on importing data into Kumu.)

There are two ways to build a map by hand:

  1. The green button

  2. Sketch mode

The green button

Click on the green button at the bottom of the map, and you'll see several options:

  • Add element

  • Add connection

  • Add loop

  • Sketch

  • Import

Try clicking on the first option, Add element, to create a new element. Kumu will prompt you to give the element a label and press the enter key on your keyboard. Voila! You've added your first element.

Add a few more elements, then try selecting Add connection from that menu to connect your elements. Once you have a few connections, you can select Add loop to create a group of connections. Then, click on the connections you'd like to have as part of your loop.

Add a label for the loop and hit enter on your keyboard to finish up.

Some systems thinkers like to mark their loops as "reinforcing" or "balancing". To do this, we recommend adding "R" or "B" (for reinforcing and balancing) to your loop label, which will describe the dynamic at play (R: Trust in Government). You can even add a numerical label if that further helps differentiate your loops or guide readers through the story (R15: Trust in Government).

To edit an existing loop, click on its label on the map, then click the edit icon () in the profile, or press L on your keyboard. You can then click connections to add/remove them from the loop. We automatically position the loop label at the center of the connections, but you can click-and-drag the loop label to another location if you want to reposition it.

To move an entire loop (including all of its connections), hold down the alt key on your keyboard, then click-and-drag the loop label.

Tip: Use keyboard shortcuts to speed up the building process! Press E to add an element, C to add a connection, and L to add a loop.

Sketch mode

If you're building a system map by hand, you should definitely give sketch mode a try! Click the green button and select Sketch to activated sketch mode.

Once sketch mode is activated, you can add an element by clicking anywhere on the map, and you can add a connection by clicking and dragging from an existing element.

Quickly enter sketch mode by pressing K on your keyboard, and press the esc key to exit. While in sketch mode, you can move elements by holding the alt key on your keyboard, then clicking and dragging the element.

Refine your map's appearance

Once you've added the elements, connections, and loops to your system map, it's time to start refining the visual appearance. Below are a few techniques that will be helpful along the way.

Change the curvature of connections

Often, you'll want to change the curvature of a connection to make it fit better around the rest of the map. To do this, just click-and-drag the connection, close to the middle of it (if you click-and-drag on either end of the connection, you'll detach it from the element on that end). You'll see the curvature changing, and once you release, the connection will stay in that position.

Note this only work for connections where both elements that are part of that connection are pinned in place (which is the default setting on the system template).

Change connection arrows

In the systems template, connections are "directed" by default, meaning that they will show up with an arrow on one end. But, you might sometimes want to flip the direction of the arrow, remove the arrow, or add arrows to both ends of the connection.

To flip the direction of a connection, you can click on the connection that you want to change, then click the direction button REVERSE to flip the connection.

To remove an arrow, you can click "Undirected", and the arrow will disappear. To add an arrow on the other side of the connection, select "Mutual".

To change the arrows for multiple connections at a time, hold down Shift on your keyboard and click on connections to select more than one. Then, follow the same steps above to make your changes. You can also press Shift + C on your keyboard to select all connections.

Add delay markings

Sometimes, system mappers will add two parallel lines intersecting a connection to indicate that there is an implicit time delay in the relationship—one factor does affect the other, but it might take a long time to do so. To add this delay marking to a connection, you can select the connection, then click the delay icon in the lower right of the connection's profile.

To add delay markings for multiple connections at a time, hold down Shift on your keyboard and click on connections to select more than one. Then, follow the same steps above to make your changes. You can also press Shift + C on your keyboard to select all connections.

Force line breaks in element labels

In the system template, element labels are placed in the center of your element circles by default. This usually looks great, but sometimes, your labels might be overflowing past the boundaries of the circle. To fix this issue, you can manually add line breaks in your labels to make sure your labels fit inside the circles as best as possible.

To manually line break, just type a double space wherever you want to see a line break in the label of any element, connection, or loop.

A long element label // no line break
A long  element label // line break betwen "long" and "element"

Or you can choose to have Kumu enter a line break automatically at a certain number of characters. Visit this guide to learn how to do that.

Change colors and sizes

One of the best ways to make your system map look sharp is to decorate your elements and connections with color. If some elements are more important than others, you can also change their size to make sure they stand out.

To learn how to take these steps, check out our full guide on decorations.

Add rich detail to your map

Once you've built your map

Marking connections as same or opposite

If you're looking to indicate whether a connection has a same or opposite causal relationship (whether the first element increases or decreases the second element), there are a few ways to go about it:

Using the connection label

If you're just looking to have "same" or "opposite" show up on the connection as a label, click to select the connection and then add "same" or "opposite" as the label. You can do this by clicking "add label" placeholder in the connection profile. You'll see the text appear on the connection on the map.

Using types

Another option is to add "same" or "opposite" as the connection type. If you're using the systems template, your connections will automatically be decorated: "same" connections will be solid lines, and "opposite" connections will be dashed lines.

Some system mappers like to go even further and include not just whether a connection is same or opposite, but also the + and - labels on the "from" and "to" ends of a connection. We've customized the behavior of the type field for connections to allow for creation of these labels. The table below lists the value to add as the connection type and the corresponding behavior it creates:



adds a + to the "from" end of the connection


adds a - to the "from" end of the connection


adds a + to both ends of the connection


adds a - to both ends of the connection


adds a + to the "to" end and a - to the "from" end of the connection


adds a - to the "to" end and a + to the "from" end of the connection

Simply add the value to the "type" field on any connection:

And we'll automatically add the pre- and post-labels for you:

Using pre-labels and post-labels

We also support custom pre-labels and post-labels—just add two new fields to your connections and name the fields Prelabel and Postlabel. Anything you type in those fields will appear at the start and end of the connection.

Add narratives and other background information

One of the challenges with many system mapping platforms is that they don't allow for extensive narratives and information to be saved for each element, connection, loop and map. Instead, you're left with a simple graphical map that's nearly impossible to decode on your own.

Kumu allows you to add rich narratives and information easily for any and all levels of your map. Start by using the map overview to add a description of the overall map and key dynamics at play. Then, click on a loop and use its profile to include a narrative that describes the behavior, both current and historical, and includes links to any supporting research that led to the creation of the loop. For specific elements, provide a quick definition to ensure there isn't confusion. And for connections, include a brief description of why two elements are causally related. Don't forget to cite your sources!

Ever gotten lost in someone's description of a system map, wondering why you can't find what they're talking about in the map narrative?

Good news! Kumu allows you to create links to elements and loops within your description. When someone hovers their cursor on the link, the map will pan and zoom to that location on the map.

To learn add these links, read more about our Lists widget.

To add custom data to your map, like trends or needed change, try creating new fields and filling them out for each element, connection, or loop.

It is often quite helpful to walk a group through the exercise of discussing how a given factor has been trending over time. Is the relevance or availability for the factor increasing or decreasing? If you save this information in a custom field, you could, for example, select all the factors that have been decreasing, and use decorations to color them dark red.

Another helpful piece of data is whether a given factor needs to significantly increase, increase, stay the same, decrease, or significantly decrease going forward. By using this data and adding a color scale to the values, you can quickly see where the most change needs to happen in a given map.

You can even add data like % complete to be able to track the status of your implementation efforts and your progress with a systems intervention. Use a color scale to automatically darken the elements as they reach a higher completion percentage, and lighten them if the completion percentage is low.

The great part about Kumu is you don't need to just pick one of these ways to decorate! Using views, you can easily switch between different perspectives to highlight different information.

Share your system map

Now that your map is built, refined, and enriched in Kumu, it's time for the real work to begin: sharing! In Kumu, it's possible to create a shareable link for your map, but we recommend creating a presentation instead, so you can break your system map down into smaller pieces, explaining each one to your map readers.

When you finish your presentation, you'll be able to send a link to your readers, embed it on a website, or even project it onto a screen. Published presentations are fully interactive, so viewers will be able to zoom in and out, click on loops to see narratives, and explore your system map in its entirety.

Last updated