I want to setup a job which promotes an artifact from say integration repo in artifactory to staging repo in artifactory based on the result of another job. Even if there is a solution to promote as a post build action based on result of the current job, it would suffice my requirement.
You can use Artifactory's Build Promotion API and promote a build into a different repository each time with a different status.
So basically have a downstream Jenkins job that calls this API after a build has met your quality requirements (i.e. tests completed successfully).
The Jenkins Artifactory plugin has very extensive functionality for promotion by itself as well.