Calculations

Calculation fields can be used to easily manipulate the data added to your apps. This very powerful tool not only allows you to perform mathematical calculations on the numbers in your app, but also lets you concatenate the values in certain fields together.

Values are added to a calculation field using variables. Use the “@” symbol to search for variables in your app. You can reference any fields within your app, as well as any fields within referenced apps.

App Calculations

Can’t find a field you need? Save your app first and return to the template builder. This will happen for any fields you’ve just added to your app, since they technically do not exist in your app yet.

Use standard operators (+, -, *, /) to perform mathematical operations on numeric values. These should be separated by spaces (e.g. “Value1 + Value2”, not “Value1+Value2”).

You can add strings of text to your calculation as well. Text must be separated by quotations, and the “+” symbol should be used between text and variables (e.g. Value1 + “ text goes here “ + Value2).

Calculations will output data in one of three different types: Number, Date, or Text. The output type is determined the first time you create your calculation field. This is important to note, since the output type cannot be changed. If you try to change from one output type to another, you will see an error that says “The type of result changed from [X] to [Y].” To fix this, you simply need to delete the calculation field and recreate it to get a new output type.

Check out this video guide for a walkthrough:

If you are a developer, calculation fields also support JavaScript, so you can create even more advanced calculations this way. We do not provide support for using JavaScript, but we have created some basic tips here.

If you’d like some assistance, you can check out this forum. There you will find examples of what other people have done, and if you can’t find the answer to what you need you can post a new topic.

  • Here is a general tip on how the calculations engine works for building good-performing calculations.

Calculation Tips

  • You can see visual indicators next to the calculation field name which will help you understand the current status of your calculation. If your calculation was updated in the last 2 days, it will show you the last updated timestamp. If your calculation is currently in the queue for processing (for bulk calculations), it will show as “calculating”
  • You might sometimes want to quickly refresh the calculation fields of a particular item, this option can be found under the “Actions” dropdown on any item and can only be exercised once an hour to restrict abuse.

If you’d like some assistance, you can check out this forum. There you will find examples of what other people have done, and if you can’t find the answer to what you need you can post a new topic. Use PodioCalculationTips.pdf for more information on how the calculations engine works for building good-performing calculations.

Calculation Behavior

To help troubleshoot and ensure your calculations run smooth - here are some important specifics of the Podio calculations engine:

  • Podio calculations engine calculates each calculation field independently and each particular field is not aware of other calculations that might happen same time

  • Calculations might happen same time. Podio API have multiple workers (machines) and they may execute calculations for different fields on same item at same time.
  • Calculations might also happen one after another. All tasks for re-calculations are being added to queue. And if there is high load then it may take some time between different re-calculations.
  • Podio calculations engine does not guarantee order of execution. Example: if field2 depends on field1 and field3 depends on field1, and field1 is updated, then Podio does not guarantee which field will be calculated first, field2 or field3. But, it guarantees that both field2 and field3 will be re-calculated.
  • Podio calculations engine doesn’t re-calculate already calculated field to prevent infinite loops. Example: field1 => field2 => field3 => field4 => field2 dependency won’t update field2 second time because it was already updated inside same dependency chain.

PodioCalculationTips.pdf

Calculations

In this article