The Podio App Items connector is used to connect to Podio Application Items to read and write new items.
Data Sync connects to Podio via the Podio OAuth 2.0 protocol, this requires an API Key combination of Client ID and Client Secret. Out of the box Data Sync has internal copies of our Keys it is recommend that for production use you generate your own keys this is because each key has it's own API limits.
Within your Podio account settings under API Keys
create a new application and keep note of the Client ID and Client Secret.
It's recommended to use the Data Sync connection library with Podio since these keys need refreshing from time to time and it's much easier to setup this authentication once and re-use it.
To create your initial Connection locate the Podio Items connector and enter the connection details as follows
...
to sign into Podio and authorise the application to connect. Set the Authentication Mode
to either Client
or App
depending on how you are authenticating.When you click onto the ellipsis in the credentials field it will open a browser window and redirect you to login to Podio.
Sign in to your Podio workspace and grant access to your Application key. In this example the application name was configured to be Data Sync.
Once you are connected navigate back to Data Sync and then select the app you wish to connect to. Click Connect & Create Library Connection to save the connection to the connection library. You only need to do this once per site as you can access the other workspaces from the connection library window.
You can connect to your Podio Apps directly from the Connection Library.
Right click on an App in the Connection Library and connect it to either your Source (A) or Target (B).
You can also use Drag and Drop to simply Drag an App from the Connection Library onto the Data source.
The Podio App to connect to.
A View from the App to use to return the App data, typically this will be All Items
however you may want to return a filtered view in certain scenarios.
If you are exporting Podio data to Mongo DB you can return a reduced list of columns and have the remainder returned as a JSON Blob column by setting RawJsonMode to True
Make sure to refresh your connection window by clicking on the refresh button once you have changed the RawJsonMode field.
The Silent property indicates whether data changes should be reported to the activity stream.
The number of items to return from Podio in each web request, the smaller this number the more API calls are used. The larger the number the more likely you are to get errors. The default is 250.
Specifies how DateTime
values should be handled. If you use Local Timezone DateTime values then you should choose Local
rather than UTC
.
Choosing local
causes data sync to convert Podio UTC
values into your local
timezone. When updating Podio local
will cause your DateTime
values to be converted into UTC
.
The Podio external_id
column is used to store an identifier from an external system.
It is important that if you plan to synchronise your data back to your source system you use this field to store your source system unique record identifier.
Only this field can be used with incremental sync mode so again it's important to use this field where possible.
To set a Podio related column value you need to obtain the item_id
of the item you wish to relate, this can be dove via a Lookup function. The Data Type of the Column in the schema map must be System.Int32
.
If you need to set multiple items then the schema map data type must be System.Int32[]
which is an array of item_id
. The Lookup functions cannot return an array of items so you will need to use Dynamic Columns to lookup each item_id
individually.
You can lookup values in other Apps either via the standard lookup or via the LOOKUPA/B calculated column function.
For example looking up the item_id
in the app Simego Ltd/Test/Categories
where the external_id
= CategoryID
.
LOOKUPB("item_id", "Simego Ltd/Test/Categories", WHEN("external_id", CategoryID))
From Project Automation you can interact with the Podio API directly via our Helper Methods.
The Podio
object provides methods which can be used to call Podio API's from Project Automation.
The following methods can be used to call a Podio API. These requests have the OAuth token added to the request so that they are authenticated. The Body is the Json message to send for the API call.
dynamic JsonRequest(Uri uri, string method, string body)
dynamic JsonRequest(HttpWebRequest request, string body)
void AddStatusMessage(int spaceID, string message)
For example
DataSourceB.Podio.AddStatusMessage(DataSourceB.AppSpaceID, "Hello from DataSync!");
The UpdateSourceRow
method can be used to update columns on the current Podio Item in Project Automation item events.
These methods are a convenience wrapper around the Podio https://api.podio.com/item/<itemid>
HTTP PUT API call.
bool UpdateSourceRow(Dictionary<string, dynamic> fields, object identity);
bool UpdateSourceRow(string json, object identity);
An example using the UpdateSourceRow
method in Project Automation AfterUpdateItem
event to set a Podio column called Synchronised
to equal 1.
public override void AfterUpdateItem(object sender, DataCompareItemInvariant item, object identity)
{
var fields = new Dictionary<string, object>
{
{
"fields", new Dictionary<string, object>
{
{ "synchronised", 1 }
}
}
};
DataSourceB.UpdateSourceRow(fields, identity);
}