Reports ======= Segment based reports & bulk actions ------------------------------------ Segments are pre-defined "views" of your data. You can create a segment from almost any data type, and the report will only show data that matches the segment's filter rules. The Sheep system comes with a large number of automatic segments created for common use cases. You can also create your own segments. Requesting a report/action -------------------------- Reports are asynchronous - you must request the report and then come back once it has been processed. To request a report, you must provide the following information: (the segment URI is part of the URL). The report file will be stored on Amazon S3 when it is ready. :template: optional - (this dictates which fields are visible in the report) :policy: optional - the security policy for the report only needed if you wish to export fields beyond the usual security policies. :gdpr_bypass: optional - defaults to False, set True to bypass GDPR checking :gdpr_bypass_reason: required if GDPR bypass is set, you must provide a reason for doing so :gdpr_channel: optional: for PDF reports (`process` (default), `post`, `email`) .. code-block:: http http GET https://sls-api.sheepcrm.com/segments/v2/example/segment/634d38a....21d46/all/{format}/ "Authorization: Bearer $API_KEY" HTTP/1.0 200 OK { "bucket": "example", "debug": null, "journal_uri": "/example/journal/634db79....d005c2a/", "lambda_prefix": "sheepcrm-reports", "policy": "membership", "report_format": "xlsx", "template": "/example/template/634d41.....63821e1a/", "uid": "634d38a....21d46", "use_mapreduce": true, "user_uri": "/sheepcrm/user/554b31....00a4b4/" } The `journal_uri` in the response is the URI of a notification/reminder/task which will have been created for the user. The notification is created with a "preparing" title, and will be updated with the report's status and the S3 link when it is ready to download. If the report fails, the notification will be updated with the error message. Report Types ------------ Excel / XLSX ^^^^^^^^^^^^ Use Excel reports to get access to the underlying data. `{segment uri}/all/xlsx/` PDF ^^^ Use PDF reports to get printable versions of the data. PDF templates can be user generated content or a fixed format report. `{segment uri}/all/pdf/` +----------------------------------+----------------+------------------------+ | template | size | description | +==================================+================+========================+ | sheep-card-standard | 8.51 x 5.51 cm | simple membership card | +----------------------------------+----------------+------------------------+ | sheep-receipt-a5 | A5 Landscape | payment receipt | +----------------------------------+----------------+------------------------+ | sheep-membership-certificate-a4 | A4 Portrait | | +----------------------------------+----------------+------------------------+ | sheep-invoice-a4 | A4 Portrait | | +----------------------------------+----------------+------------------------+ | avery-3478 | (1 x 1) | address labels | +----------------------------------+----------------+------------------------+ | q-connect-kf26050 | (1 x 1) | address labels | +----------------------------------+----------------+------------------------+ | q-connect-kf26056 | (1 x 2) | address labels | +----------------------------------+----------------+------------------------+ | q-connect-kf02246 | (2 x 2) | address labels | +----------------------------------+----------------+------------------------+ | q-connect-kf71461 | (2 x 3) | address labels | +----------------------------------+----------------+------------------------+ | q-connect-kf26055 | (2 x 4) | address labels | +----------------------------------+----------------+------------------------+ | q-connect-kf26053 | (2 x 8) | address labels | +----------------------------------+----------------+------------------------+ | q-connect-kf26052 | (3 x 6) | address labels | +----------------------------------+----------------+------------------------+ | q-connect-kf26054 | (2 x 7) | address labels | +----------------------------------+----------------+------------------------+ | q-connect-kf26051 | (3 x 7) | address labels | +----------------------------------+----------------+------------------------+ | q-connect-kf26071 | (3 x 8) | address labels | +----------------------------------+----------------+------------------------+ | avery-3652 | (3 x 7) | address labels | +----------------------------------+----------------+------------------------+ | avery-3653 | (2 x 7) | address labels | +----------------------------------+----------------+------------------------+ | avery-3653-p | (2 x 7) | address labels | +----------------------------------+----------------+------------------------+ | avery-3484 | (2 x 8) | address labels | +----------------------------------+----------------+------------------------+ | avery-3427 | (4 x 2) | address labels | +----------------------------------+----------------+------------------------+ | avery-3475 | (8 x 3) | address labels | +----------------------------------+----------------+------------------------+ | avery-3425 | (5 x 2) | address labels | +----------------------------------+----------------+------------------------+ | avery-3483 | (2 x 2) | address labels | +----------------------------------+----------------+------------------------+ | avery-3663 | (5 x 13) | address labels | +----------------------------------+----------------+------------------------+ | ryman-p16-universal-99x34mm | (2 x 8) | address labels | +----------------------------------+----------------+------------------------+ for full list of labels see API calls below Available Labels ^^^^^^^^^^^^^^^^ .. code-block:: http http GET https://sls-api.sheepcrm.com/reports/v2/pdf/address_labels/ "Authorization: Bearer $API_KEY" HTTP/1.0 200 OK { "avery-3425": { "height": 5.7, "name": "avery-3425 (5 x 2)", "unit": "cm", "width": 10.5 }, "avery-3427": { "height": 7.4, "name": "avery-3427 (4 x 2)", "unit": "cm", "width": 10.5 }, ... Available Membership Certificates ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :bucket: optional - pass the bucket (flock identifier) for additional custom certificates .. code-block:: http http GET https://sls-api.sheepcrm.com/reports/v2/pdf/membership_certificates/ "Authorization: Bearer $API_KEY" HTTP/1.0 200 OK { "sheep-membership-certificate-a4": { "height": 29.7, "name": "sheepCRM A4 portrait", "unit": "cm", "width": 21.0 } } Available Letter Templates ^^^^^^^^^^^^^^^^^^^^^^^^^^ :bucket: required .. code-block:: http http GET https://sls-api.sheepcrm.com/reports/v2/pdf/letters/ "Authorization: Bearer $API_KEY" HTTP/1.0 200 OK { "/example/template/63490b08fa78f4fa203eedea/": { "height": 29.7, "name": "Thank you for your completed membership application", "unit": "cm", "width": 21.0 }, "/example/template/634d41ddcffe37f863821e1a/": { "height": 29.7, "name": "Subscription Renewal PDF", "unit": "cm", "width": 21.0 } } Mailchimp Segment export ^^^^^^^^^^^^^^^^^^^^^^^^ :name: optional - name of the Mailchimp segment (will be prefixed by `sheepCRM segment:`), defaults to the segment name if not provided Create a one-off mailchimp segment from the the sheep segment `{segment uri}/all/sync_mailchimp/` Sending messages to a segment ----------------------------- :segment_uri: required - the segment uri :template: required* - template to use for the message :subject: required* - subject of the email :body: required* - body of the message :gdpr_bypass: optional - set to true to bypass the gdpr checks :message_type: optional - default = "email", can be "sms", "email", "in-app" or "post"** *either template or subject and body are required ** bulk post not yet implemented .. code-block:: http http POST https://api.sheepcrm.com/api/v1/example/reports/segment_email_builder/ "Authorization: Bearer $API_KEY" segment_uri=/example/segment/632c65beb05d1aa53ac6b923/ subject="test 1" body="hi {{first_name}}" { "bad": 9, "duplicate": 0, "message": "/example/message/637e3cf3b443397649e785de/", "missing": 0, "num_contacts": 66, "query": { "membership_record_status": "active" "exact": true, "mode": "AND" }, "segment_uri": "/example/segment/632c65beb05d1aa53ac6b923/", "skipped": 0 }