Intelligent data capture