Делал буквально вчера такое.
В контактной форме скрытое поле input[type=hidden].
У кнопки data-атрибут, в котором указан источник ("название кнопки").
При открытии модального окна (
dimsemenov.com/plugins/magnific-popup ) значение data-атрибута записывается в скрытый input.
Так же для яндекс.метрики можно разные цели расставить по кнопкам и дергать их, если требуется точная аналитика эффективности кнопок.