Custom use case

You will often want to send notifications in a format other than the one that action-slack has determined.
In such a case, consider using status: custom.

If you specify a payload in accordance with the slack specification, action-slack will notify you as it is.
Use status: custom and custom_payload to customize notifications to your liking can be sent.

steps:
  - uses: 8398a7/action-slack@v3
    with:
      status: custom
      custom_payload: |
        {
          text: "Custom Field Check",
          attachments: [{
            "author_name": "8398a7@action-slack", // json
            fallback: 'fallback',
            color: 'good',
            title: 'CI Result',
            text: 'Succeeded',
            fields: [{
              title: 'lower case',
              value: 'LOWER CASE CHECK'.toLowerCase(),
              short: true
            },
            {
              title: 'reverse',
              value: 'gnirts esrever'.split('').reverse().join(''),
              short: true
            },
            {
              title: 'long title1',
              value: 'long value1',
              short: false
            }],
            actions: [{
            }]
          }]
        }        
    env:
      SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required

As you can see, the JavaScript functionality is available in the custom_payload . (e.g. toLowerCase())
We have even more options for those who want to use custom notifications, but want to use the Fields feature.

steps:
  - uses: 8398a7/action-slack@v3
    with:
      status: custom
      fields: workflow,job,commit,repo,ref,author,took
      custom_payload: |
        {
          attachments: [{
            color: '${{ job.status }}' === 'success' ? 'good' : '${{ job.status }}' === 'failure' ? 'danger' : 'warning',
            text: `${process.env.AS_WORKFLOW}\n${process.env.AS_JOB} (${process.env.AS_COMMIT}) of ${process.env.AS_REPO}@${process.env.AS_REF} by ${process.env.AS_AUTHOR} ${{ job.status }} in ${process.env.AS_TOOK}`,
          }]
        }        
    env:
      SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
    if: always() # Pick up events even if the job fails or is canceled.

You can access the values retrieved by Fields through environment variables.
See Fields for the available environment variables.

If there’s a good format, I’d like to introduce it on this page from time to time.