INTEGRATION > Why should you use dedicated integration platforms with Tallyfy?
When you want to integrate another system to Tallyfy, the general expectation is that Tallyfy itself might provide a native integration to it.
Sometimes - we do have native integrations between Tallyfy and other systems, but most of the time, you are much better off using a proper integration platform.
Please read on to see why.
Let's explain the concept first. An integration platform or "middleware" is something that sits in between Tallyfy and any other app. It brokers integrations between two services. It also manages all sorts of other things which would be tricky to manage otherwise e.g.:
- If the integration to app A changes, who is going to change the code so that the integration from app A to app B does not break?
- How do you know if an integration actually ran i.e. see a trace of what has happened?
- How do you design complex flows/data transformation so that a value in app A e.g. "hello" is changed before it comes to the other app e.g. transformed to uppercase e.g. "HELLO"?
- How do you sequence together various integrations in one place?
- Instead of you building every integration from scratch, could you pick up "connectors" that other people have built to cut something that could have taken you months of time to build yourself, into just minutes of setup time?
Examples of integration platforms are Microsoft Flow and Zapier.
Remember that integration platforms are only supposed to be about automating data flows between one app and another. They do little or nothing when it comes to human-powered workflows - which is where Tallyfy fits in.
Now that we've covered that - let's cover why you should integrate Tallyfy with other apps via an integration platform, not natively or through hand-crafted code. These headings represent what would happen if you did not use an integration platform to integrate your apps.
Integrations change all the time - you'll have to keep up yourself
If Vendor A changes their API or how a certain integration works, you'll have to change your custom code. Generally with an integration platform, you don't have to do this - because either Vendor A or the integration platform itself will keep integrations up to date and working for you.
For every new integration - you have to write it from scratch
This could be very painful. Why not leverage hundreds of connectors to popular apps which are already built?
You will never be able to trigger integrations in many different ways
When you want an integration to do some work, or "fire" - it needs a trigger. For example - when an email comes into my Outlook mailbox with subject line "XYZ" then launch a process in Tallyfy. Given that there's tens of thousands of possible triggers, you will never be able to have all potential triggers - unless you use an integration platform.
You will have to write boilerplate stuff from scratch
These are very common problems with integrations - which you'll have to address from scratch:
- If I'm trying to push data from app A into app B and app B is down (offline) - then how often do we re-try?
- If an integration just ran between app A and app B - is there a trail that recorded what happened, exactly?
- If I am trying to do common/simple transformations e.g. convert characters from lower case to a special format, etc. - you'll have to do all this yourself.
- As soon as you build an integration, the scope will keep on increasing. Instead of all the work being done by the vendor and the integration platform - you will need to do the work yourself.
Generally - all the above issues are taken care of, by the integration platform itself.
In summary - even if you have to write custom code, we strongly suggest that you write your custom code within an integration platform - so that you get the full benefits of a "wrapper" around your integration, and never have to spend months (if not years) re-solving all the basic problems above.