{% extends "base.html" %} {% block title %}Data{% endblock %} {% block scripts %} {% endblock %} {% block content %}

Data

Where the figures in your emails come from.

Add Data

{{ product.name }} checks for new data every few minutes, so nobody has to upload files.

Whoever produces the report just emails it (as an Excel or CSV attachment) to one of your connected inboxes. Each new attachment becomes the latest data.

Upload an Excel (.xlsx) or CSV file. The first row should be the column names. Upload a new version any time: automations set to “when something new comes in” will send it.

{% for name, src in sources.items() %} {% set p = previews[name] %}

{{ src.label or name }}

{{ {'mock_finance':'Demo finance data','mock_sales':'Demo sales data','folder':'Files uploaded on Sales materials','quotes':'Quotes created in {{ product.name }}'}.get(src.type) or source_types.get(src.type, src.type) }} {% if users.get(name) %} · used by {{ users[name]|join(', ') }}{% else %} · not used by any automation yet{% endif %}
{% if p.error %}Problem{% elif p.item %}Has data{% else %}Empty{% endif %}
{% if p.error %}
{{ p.error }}
{% endif %} {% if errors.get(name) %}
Last check failed: {{ errors[name] }}
{% endif %} {% if src.type in ('folder_watch', 'web_link', 'email_in', 'api', 'hubspot', 'odoo', 'xero', 'pipedrive') %}
{% if src.type == 'xero' %}{{ 'Reconnect Xero' if src.tenant_id else 'Connect Xero' }}{% endif %}
{% endif %} {% if p.item %}

Latest: {{ p.item.title }}

{% if p.item.summary %}
{% for k, v in p.item.summary.items() if v is not mapping %}
{{ k.replace('_', ' ')|capitalize }}{{ fmt(v) }}
{% endfor %}
{% endif %} {% if p.item.table %}
{% for c in p.item.table.columns %}{% endfor %} {% for r in p.item.table.rows[:8] %}{% for v in r %}{% endfor %}{% endfor %}
{{ c }}
{{ fmt(v) }}
{% if p.item.table.rows|length > 8 %}

First 8 of {{ p.item.table.rows|length }} rows.

{% endif %} {% endif %} {% endif %} {% if p.item and p.item.table and src.type not in ('mock_finance', 'mock_sales', 'folder', 'quotes') %}
What do the columns mean? {{ product.name }} guessed; correct anything that's wrong.
{% for key, label in role_labels.items() %}
{% endfor %}
{% endif %} {% if brands|length > 1 and not scoped %}
Belongs to:
{% endif %} {% if p.item and p.item.table and src.type not in ('mock_sales', 'folder', 'quotes') %}
{{ 'Each invoice is tracked on the Receivables page.' if src.track else 'Track each invoice (status, promises, paid) on the Receivables page?' }}
{% endif %} {% if src.type == 'spreadsheet' %}
{% endif %}
{% endfor %} {% endblock %}