In the link for appointnow (or if you have a custom program that uses the appointnow api), you can populate the campaign id by modifying the link for each of your marketing campaigns.
The appointnow link info is unique to each Office. This info is in Help - Downloads and Links.
Modify the URL to include CampaignID
See example below.
<!-- Denticon AppointNow Link -- S T A R T --><a target='_blank' href='https://www.appointnow.com/?P=4438&O=100&PT=0&campaignID='> <b>AppointNow</b></a> <!-- Denticon AppointNow -- E N D -->
"campaignID="
Upon modifying the appointnow URL with the CampaignID, this id will be is populated for each appointment now.
IMPORTANT TO NOTE: The only place you have access to this is to subscribe to the BCP service.
You can therefore use that downloaded data to produce your own analytics around it.