diff --git a/frontend/src/metabase/pulse/components/PulseCardPreview.jsx b/frontend/src/metabase/pulse/components/PulseCardPreview.jsx
index 652c2c55d5baca9d3d4f2dd4084f6103feaa530a..d225b0e8f429e35aba329d64c06109917597cb71 100644
--- a/frontend/src/metabase/pulse/components/PulseCardPreview.jsx
+++ b/frontend/src/metabase/pulse/components/PulseCardPreview.jsx
@@ -22,6 +22,7 @@ export default class PulseCardPreview extends Component {
         onRemove: PropTypes.func.isRequired,
         fetchPulseCardPreview: PropTypes.func.isRequired,
         attachmentsEnabled: PropTypes.bool,
+        trackPulseEvent: PropTypes.func.isRequired
     };
 
     componentWillMount() {
@@ -46,8 +47,12 @@ export default class PulseCardPreview extends Component {
         const { card, onChange } = this.props;
         if (this.hasAttachment()) {
             onChange({ ...card, include_csv: false, include_xls: false })
+
+            this.props.trackPulseEvent("RemoveAttachment")
         } else {
             onChange({ ...card, include_csv: true })
+
+            this.props.trackPulseEvent("AddAttachment", 'csv')
         }
     }
 
diff --git a/frontend/src/metabase/pulse/components/PulseEditCards.jsx b/frontend/src/metabase/pulse/components/PulseEditCards.jsx
index f714a6698b7d771f73efbca31d10275c5f48cc4e..dff1db88710a8505b08f4b04561c61e1aad30ed2 100644
--- a/frontend/src/metabase/pulse/components/PulseEditCards.jsx
+++ b/frontend/src/metabase/pulse/components/PulseEditCards.jsx
@@ -38,10 +38,17 @@ export default class PulseEditCards extends Component {
         });
     }
 
+    trackPulseEvent = (eventName: string, eventValue: string) => {
+        MetabaseAnalytics.trackEvent(
+            (this.props.pulseId) ? "PulseEdit" : "PulseCreate",
+            eventName,
+            eventValue
+        );
+    }
+
     addCard(index, cardId) {
         this.setCard(index, { id: cardId })
-
-        MetabaseAnalytics.trackEvent((this.props.pulseId) ? "PulseEdit" : "PulseCreate", "AddCard", index);
+        this.trackPulseEvent("AddCard", index);
     }
 
     removeCard(index) {
@@ -51,7 +58,7 @@ export default class PulseEditCards extends Component {
             cards: [...pulse.cards.slice(0, index), ...pulse.cards.slice(index + 1)]
         });
 
-        MetabaseAnalytics.trackEvent((this.props.pulseId) ? "PulseEdit" : "PulseCreate", "RemoveCard", index);
+        this.trackPulseEvent("RemoveCard", index);
     }
 
     getNotices(card, cardPreview, index) {
@@ -61,7 +68,7 @@ export default class PulseEditCards extends Component {
         if (hasAttachment) {
             notices.push({
                 head: t`Attachment`,
-                body: <AttachmentWidget card={card} onChange={(card) => this.setCard(index, card)} />
+                body: <AttachmentWidget card={card} onChange={(card) => this.setCard(index, card)} trackPulseEvent={this.trackPulseEvent} />
             });
         }
         if (cardPreview) {
@@ -134,6 +141,7 @@ export default class PulseEditCards extends Component {
                                             onRemove={this.removeCard.bind(this, index)}
                                             fetchPulseCardPreview={this.props.fetchPulseCardPreview}
                                             attachmentsEnabled={this.props.attachmentsEnabled}
+                                            trackPulseEvent={this.trackPulseEvent}
                                         />
                                     :
                                         <CardPicker
@@ -155,7 +163,7 @@ export default class PulseEditCards extends Component {
 
 const ATTACHMENT_TYPES = ["csv", "xls"];
 
-const AttachmentWidget = ({ card, onChange }) =>
+const AttachmentWidget = ({ card, onChange, trackPulseEvent }) =>
     <div>
         { ATTACHMENT_TYPES.map(type =>
             <span
@@ -166,6 +174,8 @@ const AttachmentWidget = ({ card, onChange }) =>
                     for (const attachmentType of ATTACHMENT_TYPES) {
                       newCard["include_" + attachmentType] = type === attachmentType;
                     }
+
+                    trackPulseEvent("AttachmentTypeChanged", type);
                     onChange(newCard)
                 }}
             >
@@ -176,5 +186,6 @@ const AttachmentWidget = ({ card, onChange }) =>
 
 AttachmentWidget.propTypes = {
     card: PropTypes.object.isRequired,
-    onChange: PropTypes.func.isRequired
+    onChange: PropTypes.func.isRequired,
+    trackPulseEvent: PropTypes.func.isRequired
 }