{% extends "base.html" %} {% load humanize %} {% comment %} The CSV import landing page: the upload form, and this workspace's past runs. The consent checkbox is the load-bearing part of this page. It states the one thing about importing that surprises people — an imported contact is not reachable on any channel until they message in — and the importer backs that up by never creating a ContactChannelIdentity. Ticking it is recorded on the run, so there is a record that the person who imported the list was told. {% endcomment %} {% block title %}Import contacts · Contacts · DemandTrail Messaging{% endblock %} {% block page_header %}

Import contacts

Upload a CSV, map its columns, check it, then import.

{% endblock %} {% block content %}

Upload a file

Up to {{ max_mb }} MB and {{ max_rows|intcomma }} rows. The first row must hold the column names.

Recent imports

{% if runs %} {% for run in runs %} {% endfor %}
FileStatusRowsResultStarted by
{{ run.original_filename|default:"Unknown file" }}
{{ run.created_at }}
{{ run.get_status_display }} {{ run.processed_rows }}{% if run.total_rows %} / {{ run.total_rows }}{% endif %} {{ run.created_count }} created · {{ run.updated_count }} updated · {{ run.skipped_count }} skipped · {{ run.error_count }} error{{ run.error_count|pluralize }} {{ run.created_by.email|default:"Unknown" }} Open
{% else %}

No imports yet.

{% endif %}
{% endblock %}