Sometimes it is useful to “take a snapshot” of a PocketQuery macro and persist it somewhere for later use.

The macro does not come with a default option that allows you to do this, but it can easily be achieved with a simple PocketQuery Template.

Using this Template, you can generate a button that allows you to copy the whole PocketQuery table as CSV with a single click.

    AJS.toInit(function() {
        // Copies text into the user's clipboard
        function copyToClipboard(text) {
            var temp = jQuery("<textarea />").appendTo("body").val(text).select();
        // Transform PQ result data into CSV
        function generateCsv() {
            var headers = PocketQuery.queryColumns().join(',');
            var rows = PocketQuery.queryArray().map(function(row) {
                return Object.keys(row).map(function(column) {
                    return row[column];
            return headers + '\n' + rows;
        // Bind functionality to our button
        jQuery("#pq-copy-as-csv").on("click", function() {
            var csv = generateCsv();
<button id="pq-copy-as-csv" class="aui-button aui-button-primary">Copy table as CSV</button>
<span id="pq-copy-as-csv-msg" style="display: none;">Copied into clipboard!</span>
## Render the PocketQuery default Template (table)

This is what the result will look like: