I'm working on making a contract that will issue a user a token. The user will perform an action and this will be stored in our database. Once it's stored in our database, there should be a link between our database and the contract/dapp that triggers it to issue the token. I was wondering how one would go about creating that link. Is it as easy as making a listener(if possible)?
It would help if you told us a bit more about what you're trying to achieve - why is your data split between the blockchain and your database? (I'm not saying this is the wrong thing to do, but the appropriate design will depend on your goals.)
As you're describing it you're going to end up with two different actions, one putting the data in the database and the other issuing the token on the blockchain. One of these may succeed and the other fail, so you'll probably want to designate one as the "master" and the other as the "slave" - ie, one always holds the ultimate version of the data, and the other is updated afterwards to match it.
If you consider the blockchain to be the "master", the obvious thing to do is to make the transaction by sending a request to your contract on the blockchain, then have that issue an event. Then have a process listening for that event and putting the necessary data in your database. If something falls over you'll be able to rerun that process and catch up with any events that it's missing, although your database is going to be behind in the meantime.